MS Access 2007

Kiwani

Grünschnabel
Hallo zusammen,
ich bearbeite Logfile Mit MS Access.
Habe welche IPs, die so ein Format hat: 123.12.*
Mein Problem: ich muss an der Stelle von * einnen wert zwischen 0 und 255 anfügen.
Insgesamt habe ich etwa 800 solche ip's und kann die alle nicht händig bearbeiten:D

Ich habe versucht mit "Ersetzen" Funktion versucht, kann es aber nur ein Wert ersetzen und keinen Bereich.

Ich hoffe auf euere Helfe.

lg
Kiwani
 
Musst du bei 123.12.* irgend wein Wert zwieschen 0 und 255 einfügen oder alle?

Also hast du dann
123.12.Zufallszahl1.Zufallszahl2

Oder
123.12.0.0
und 123.12.0.1
und 123.12.0.2
bis 123.12.255.255
 
Hallo Yaslaw,

Sorry die Ip's haben die Foramt: 123.12.123.*. Also ich muss nur den Lezten Token bearbeiten

also ich muss für den Letzten alle werte zwischen 0 und 255 anhängen. So soll es aussehen:

1- 123.12.123.0
2- 123.12.123.1
3- 123.12.123.2
.
.
.
255- 123.12.123.255


lg
Ahmad
 
Am besten über Arrays.
Ich hab hier mal ein Beispiel.

Visual Basic:
Public Sub testips()
    Dim newIps()   As String
    
    'Funktion mit der ip-Adresse aufrufen
    newIps = getIps("12.138.18")
    'Alle Resultate ausgeben
    For Each ip In newIps
        Debug.Print ip
    Next ip
    


End Sub

Public Function getIps(ByVal inIpAddress As String) As String()
    Const C_MIN_IP_PART As Integer = 0
    Const C_MAX_IP_PART As Integer = 255
    Dim inipParts() As String
    Dim ipParts() As String
    Dim ipAddresses() As String
    Dim ipAddressesTemp() As String
    Dim ipFixPart As String
    
    'IP Adresse in seine Teile zerlegen
    inipParts = Split(inIpAddress, ".")
    
    'errechnen wiviele Parts vorhanden sind
    For ipPos = 0 To UBound(inipParts)
        If inipParts(ipPos) = "*" Then
            Exit For
        End If
        ReDim Preserve ipParts(ipPos)
        ipParts(ipPos) = inipParts(ipPos)
    Next ipPos
    'IP zusammensetzen ohne den *
    ReDim ipAddresses(0)
    ipAddresses(0) = Join(ipParts, ".")
    
    'Pro Stelle die nicht gefüllt ist
    For i = ipPos To 3
        ReDim ipAddressesTemp(C_MAX_IP_PART)
        'jede Zahl von 1 bis 255 anhängen
        For part = C_MIN_IP_PART To C_MAX_IP_PART
            For Each Address In ipAddresses
                ipAddressesTemp(part) = Address & "." & part
            Next Address
        Next part
        'temporärer Array zurückschreiben und leeren
        ipAddresses = ipAddressesTemp
        Erase ipAddressesTemp
    Next i

    'Array mit allen generierten ip-Adressen zurückgeben
    getIps = ipAddresses

End Function
 
Vielen Herzlichen Dank.

Ich habe aber leider überhaupt keinen Plan von VBA..
Also ich habe dein Code in einem Modul eingegeben.

Die IPs Stehen in einer Tabelle Name:tbl_stern, Feldname: IP.
wie kann ich den Code zum laufen bringen****?

Vielen Dank
lg
Kiwani
 
Zum laufen bringen ist das eine (Suche mal nach Recordset). Das andere ist, die generierten ips, was willst du mit denen machen?
 
Hallo,
die generierten IPs werden mit einer anderen Tabelle verglichen und verknüpft.
Das sind die User IPs, damit einer User Auswertung gemacht werden kann.

Ich setze mich mit dieser Recordset Geschichte auseinander.
Ich hoffe, dass ich es hinkriege?

Also ich danke dir herzlich für deine Helfe.
lg
Kiwani
 
Hallo Yaslaw,

Das ist so umfangreich mit Access... ich komme nicht hinterher.

Also den Code, den du mir geschrieben hast, soll in einem Formular eingegeben oder?

Wenn ich auf_click drucke kommt eine Fehlermeldung, dass ein End Sub fehlt********

Bitte rette mich..

Danke
Kiwani
 
Sorry, ich habe weder die Zeit noch die Lust hier einen MS Access VBA Einführungskurs zu geben. Es gibt genug Einführungsliteratur im Web und in Buchform.
Wenn du nicht weisst, was das bedeutet wenn ein 'End Sub' fehlt, dann vergiss vorerst am besten was ich hier gepostet habe und Lerne zuerst die Grundlagen.

Wenn du eine fertige Lösung haben willst, dann verschieben wir das ganze in die Stellenausschreibungen.
 
Hallo Yaslaw,
Vorab möchte ich mich nocheinmal für deine Helfe bedanken.
Ich habe von vorn an geschrieben, das ich überhaupt keine VBA Erfahrung habe.
Ich versuche jetzt seit 2 Tagen deinen Code zu verstehen..?
Also in deinem Code ist eine Klasse (testips) und die Funktion (getips).
Mit dem recordset kann mann eine Tabelle, Abfrage offnen.
Meine Frage wie kann ich meine Tabelle, die die Ips enthält an dem code binden****

Danke
Kiwani
 

Neue Beiträge

Zurück