Nieuwe map aanmaken

DirkJansen

Gebruiker
Lid geworden
7 jan 2017
Berichten
8
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, via de machinekaart bij aanmaak nieuwe machine. De mappen Machines en PDF zijn als aangemaakt bij aanmaak nieuwe klant. Maar daar loop ik vast. Deze mappen worden alleen gebruikt voor exports en informatie.
 
Laatst bewerkt:
Geef dan even aan wat verwacht. Ik ben even de draad kwijt.
 
Het laatste stukje van je mapnaam gaat fout
Code:
Me.[Klantnummer]\Machines\New_Folder
moet worden
Code:
Me.[Klantnummer] & "\Machines\New_Folder"
Met de Sub CreateDir uit #3 kun je in één keer een hele gelaagde directory aanmaken, dus
Code:
CreateDir "C:\Users\User\Documents\D-base\Bedrijfx\KlantenDossier\" & Me.[NaamBedrijf] & "_" & Me.[Plaats] & "_" & Me.[Klantnummer] & "\Machines\New_Folder"
 
Geef dan even aan wat verwacht. Ik ben even de draad kwijt.
Excuus.
Via de klantkaart worden bij aanmaak klant de dossiermappen Machines en PDF voor de klant aangemaakt.
Als er bij deze klant een machine wordt aangemaakt wil ik een machine map aanmaken in de map machines ([MachineID]_[Merk]_[Type]).
 
Dus:
Code:
CreateDir "C:\Users\User\Documents\D-base\Bedrijfx\KlantenDossier\" & Me.[NaamBedrijf] & "_" & Me.[Plaats] & "_" & Me.[Klantnummer] & "\Machines\" & Me.[MachineID] & "_" & Me.[Merk] & "_" & Me.[Type]
 
Terug
Bovenaan Onderaan