Nieuwe map aanmaken

DirkJansen

Gebruiker
Lid geworden
7 jan 2017
Berichten
7
Ik heb de onderstaande code om klantdossiermappen aan te maken in mijn klantenbestand. Graag zou ik bij het aanmaken van een nieuwe machine kaart voor klant in zijn dossiermap een machine aan te maken [MachineId]+[Merk]+[Type}. Nu krijg ik hiervoor de code niet goed. Kan iemand mij helpen met code hiervoor?
Alvast bedankt.

Private Sub KlantMap_Click()
Dim fs As Object

Dim strNewFolder As String

Set fs = CreateObject("Scripting.FileSystemObject")

strNewFolder = "C:\Users\User\Documents\D-base\Bedrijfx\KlantenDossier\" & Me.[NaamBedrijf] & "_" & Me.[Plaats] & "_" & Me.[Klantnummer]


If Not fs.FolderExists(strNewFolder) Then

MkDir strNewFolder
MkDir strNewFolder & "\Machines"
MkDir strNewFolder & "\PDF_bestanden"

Set fs = CreateObject("Scripting.FileSystemObject")

MsgBox "Dossiermap(" & strNewFolder & ") aangemaakt"

Else
MsgBox "Dossiermap bestaat al"

End If

End Sub
 
Dat lijkt me op de veldnamen na identiek aan wat hier staat (ik ga er vanuit dat die code werkt).
Wat heb je al geprobeerd?
Wat gaat er fout (foutmelding?)?
 
Bestaat deze map:
Code:
C:\Users\User\Documents\D-base\Bedrijfx\KlantenDossier\
anders gaat het fout.
Overigens is de tweede CreateObject overbodig.
Bericht automatisch samengevoegd:

En zo gaat het aanmaken van een dieper liggende map een stuk makkelijker:
Code:
Sub CreateDir(strPath As String)
    Dim elm As Variant
    Dim strCheckPath As String

    strCheckPath = ""
    For Each elm In Split(strPath, "\")
        strCheckPath = strCheckPath & elm & "\"
        If Len(Dir(strCheckPath, vbDirectory)) = 0 Then MkDir strCheckPath
    Next
End Sub
 
Laatst bewerkt:
Dat lijkt me op de veldnamen na identiek aan wat hier staat (ik ga er vanuit dat die code werkt).
Wat heb je al geprobeerd?
Wat gaat er fout (foutmelding?)?
Deze werkt, alleen wil ik nu een map aanmaken in de aangemaakte directorie

C:\Users\User\Documents\D-base\Bedrijfx\KlantenDossier\" & Me.[NaamBedrijf] & "_" & Me.[Plaats] & "_" & Me.[Klantnummer]\Machines\New_Folder

Gaat volgens mij mis in " & Me.[NaamBedrijf] & "_" & Me.[Plaats] & "_" & Me.[Klantnummer]
 
Bedoel je zoiets?
Code:
Dim fs As Object
Dim strNewFolder As String

Set fs = CreateObject("Scripting.FileSystemObject")

strNewFolder = "D:\" & Me.[NaamBedrijf] & "_" & Me.[Plaats] & "_" & Me.[Klantnummer]

If Not fs.FolderExists(strNewFolder) Then
    MkDir strNewFolder
    MkDir strNewFolder & "\Machines"
    MkDir strNewFolder & "\PDF_bestanden"
    MkDir strNewFolder & "\Machines\" & Me.MachineId & "_" & Me.Merk & "_" & Me.Type
   
    MsgBox "Dossiermap (" & strNewFolder & ") aangemaakt"
Else
    MsgBox "Dossiermap bestaat al"
End If

Misschien moet je het aanmaken van de bedrijfsmap en de machinemap(pen) wel uit elkaar trekken. Ik neem aan dat een bedrijf meerdere machines kan hebben. Bovendien vraag ik me af hoe het zit met de achterliggende database. Je stelt je vraag in het Access forum, dus ik neem aan dat er ook een database is en dat die synchroon moet lopen met de mappenstructuur.
 
Bedoel je zoiets?
Code:
Dim fs As Object
Dim strNewFolder As String

Set fs = CreateObject("Scripting.FileSystemObject")

strNewFolder = "D:\" & Me.[NaamBedrijf] & "_" & Me.[Plaats] & "_" & Me.[Klantnummer]

If Not fs.FolderExists(strNewFolder) Then
    MkDir strNewFolder
    MkDir strNewFolder & "\Machines"
    MkDir strNewFolder & "\PDF_bestanden"
    MkDir strNewFolder & "\Machines\" & Me.MachineId & "_" & Me.Merk & "_" & Me.Type
  
    MsgBox "Dossiermap (" & strNewFolder & ") aangemaakt"
Else
    MsgBox "Dossiermap bestaat al"
End If

Misschien moet je het aanmaken van de bedrijfsmap en de machinemap(pen) wel uit elkaar trekken. Ik neem aan dat een bedrijf meerdere machines kan hebben. Bovendien vraag ik me af hoe het zit met de achterliggende database. Je stelt je vraag in het Access forum, dus ik neem aan dat er ook een database is en dat die synchroon moet lopen met de mappenstructuur.
Hoi Peter,
Ik wil idd de aan te maken machines los maken van de dossiermap. Maar daar loop ik vast. Deze mappen worden alleen gebruikt voor exports en informatie.
 
Geef dan even aan wat verwacht. Ik ben even de draad kwijt.
 
Terug
Bovenaan Onderaan