Ordner mit VBA erstellen

  • Access

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Huaba.

    Ordner mit VBA erstellen

    Hi

    Ich möchte gerne wenn ich einen neuen Kunden in die Datenbank anlege dass auch automatisch für ihn ein neuer Ordner angelegt wird dessen name der Nachname ist. Ich habe zz auch sehr viele Kunden in der Datenbank für die es noch keine Ordner gibt für die ich jedoch auch neue anlegen möchte. Da ich noch nicht sehr viel VBA erfahrung habe wäre mir eine einfache Lösung am liebsten. Oder ist dies überhaupt möglich?

    Wäre über ein paar Lösungsvorschläge wirklich sehr dankbar.

    Freundliche Grüße
    Huaba
    Imports Systen.IO

    (anderer Code)

    Button1_Click...
    IO.Directory.Create(".\" & KundenName)
    End Sub
    Always code as if the person who ends up maintaining your code is a violent psychopath who knows where you live.

    BeryJu.org BeryJu.org/Blog
    JensMan

    da ich diese Funktionalität immer wieder benötige, habe ich mir die Geschichte in eine eigene Funktion gekapselt und löse das so:


    ein Verzeichnis wird so erstellt:

    boolSuccess = FolderCreate("c:\mein\tolles\Verzeichnis\kommt\hier\hin")


    Quellcode

    1. Public Function FolderCreate(folder As String) As Boolean
    2. On Error GoTo Err_FolderCreate
    3. Dim fs As Object
    4. FolderCreate = False
    5. Set fs = CreateObject("Scripting.FileSystemObject")
    6. fs.CreateFolder (folder)
    7. FolderCreate = True
    8. Exit_FolderCreate:
    9. Set fs = Nothing
    10. Exit Function
    11. Err_FolderCreate:
    12. FolderCreate = False
    13. ErrorHandler "quit", "Module_MS_Windows::FolderCreate", 1, "folder: " & CStr(folder), "severe"
    14. Resume Exit_FolderCreate
    15. End Function
    oki ich denke ich habe jetzt mal verstanden wie ich ordner anlege jedoch wie schaffe ich es, dass die ordner einen Namen bekommt der in einer Tabelle steht.

    Also z.B.: Tabelle Kunden:
    Vorname | Nachname | Straße | ...
    Max | Mustermann | ...

    dann möchte ich dass der Ordner den Namen Mustermann bekommt. Es sollte für jeden Kunde ein Ordner erstellt werden(ein paar hundert Kunden), also wie schaffe ich es dass die Namen ausgelesen werden? Vermutlich mit SQL oder? Jedoch mit Sql funzt das bei mir nicht
    Naja, dann helfe ich mal weiter. Vom Prinzip her funktioniert es wie folgt:

    Visual Basic-Quellcode

    1. Public Sub hopp()
    2. On Error GoTo Err_hopp
    3. Dim myRng As Range
    4. Dim myCell As Range
    5. Set myRng = Application.ActiveSheet.Range("B3:B6")
    6. For Each myCell In myRng
    7. CreateFolder (myCell.Text)
    8. Next
    9. Exit_hopp:
    10. Set myRng = Nothing
    11. Set myCell = Nothing
    12. Exit Sub
    13. Err_hopp:
    14. If Err.Number <> 0 Then
    15. Resume Exit_hopp
    16. Else
    17. GoTo Exit_hopp
    18. End If
    19. End Sub




    ABER: da sind noch einige Unwägbarkeiten zu beachten:

    1. Was ist zu tun, wenn die Zelle leer ist.

    2. Woher kennst Du den Bereich, den Du durchlaufen musst.

    3. Was tust Du, wenn mehrere Leute denselben Nachnamen haben?

    4. Woher weisst Du zu einem späteren Zeitpunkt, wie Du den Ordner benannt hast, als Du ihn erstellt hast (wenn's mehrere gleichnamige gab)?

    Vielleicht gibt's ja noch mehr Schwierigkeiten, aber das sind mal die, die mir so auf Anhieb einfallen...
    Sorry, der Code aus meinem letzten Beitrag ist völlig off-topic. Ich habe "Tabelle" gelesen und "Excel" gedacht. Nun denn, hier die Lösung in VBA für Access:

    Visual Basic-Quellcode

    1. Public Sub hopp()
    2. Dim myRecordset As Recordset
    3. Set myRecordset = CurrentDb.OpenRecordset("Tabelle1")
    4. myRecordset.MoveFirst
    5. Do While Not myRecordset.EOF
    6. createFolder myRecordset![Nachname]
    7. myRecordset.MoveNext
    8. Loop
    9. End Sub
    Ich würde noch prüfen, ob es den Ordner schon gibt. Ein Nachname wie Müller, Meier, Schulze und Co kommt öfter vor...Evtl als Ordnernamen noch die Kundennummer hinten dran oder vorne weg...
    Gruß
    Peterfido

    Keine Unterstützung per PN!
    super danke das mit den ordnern habe ich nun binbekommen.

    Nun stehe ich jedoch vor dem nächsten Problem und zwar möchte ich gerne meine Datenbank mit Outlook snychronisieren also wenn ich in der Access datenbank ich einen neuen Kontakt anlege dann soll auch dafür ein Kontakt in Outlook angelegt werden und umgekehrt. Am besten sollte dies automatisch ablaufen wenns jedoch nur über Button geht auch kein Problem. Die import, export funktion von access funktioniert nicht so wie ich mir das vorstellen würde.

    Wäre super wenn jemand für mich eine Lösung hätte.