Hej alle Jeg har brug for hjælp til følgende: Jeg har i dag et script der opretter en mappe med dette navn: Me.Sagsnummer & Space(2) & Adresse & Space(2) & Postnummer & Space(2) & By fra formularen hvor scriptet kaldes, samtidig bliver der tjekket den ikke findes i forvejen ell. den oprettes og derfor kommer med en af disse msg. "Mappen er nu oprettet" ell. "Mappen "'Navn på mappen'" findes i forvejen" Så vidt så godt, men nu vil jeg gerne have koden til at oprette undermapper, en 5-6 stykker, med faste navne, for at opbygge en ordentlig mappestruktur og der kommer jeg til kort, så håber der en der kan hjælpe.
Hej Terry Også godt nytår til dig :) Undermapperne kunne hedde: Billeder, Tablet, Arkiv etc. etc.
Koden ser sådan ud: Private Sub Opret_sagsmappe_DblClick(Cancel As Integer) strStartFilePath = "Z:\Dagligt\Nye sager Nedrivning\" If strEndFilePath = Dir(strStartFilePath & Me.Sagsnummer & "*", vbDirectory) Then
Const strParent = "Z:\Dagligt\Nye sager Nedrivning\" Dim strYearEntered As String Dim strEntryNumber As String Dim strFolder As String Dim FSO As Object strYearEntered = Me.Sagsnummer & Space(2) & Adresse & Space(2) & Postnummer & Space(2) & By
strFolder = strParent & strYearEntered If Dir(strFolder, vbDirectory) = "" Then MkDir strFolder
strFolder = strFolder & "\" & strEntryNumber If Dir(strFolder, vbDirectory) = "*" Then MkDir strFolder 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx T0 = Timer Do Delay = Timer - T0 Loop Until Delay = 1 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx
MsgBox "Mappen: " & strYearEntered & " ,er nu oprettet." Else: MsgBox "Mappen eksisterer i forvejen." Exit Sub End If
Du behøver vel ikke, at kontrollere, hvorvidt mappen findes i forvejen? Findes mappen i forvejen, bliver den vel bare ikke oprettet... ...der bliver jo ikke slettet eller ændret noget, blot fordi mappen findes i forvejen, og man forsøger, at oprette mappen.
Med hensyn til at lave mappe strukturen, så er du 1000 gange bedre hjulpet, hvis du benytter API kald til windows funktionen - der med slipper du for besævret med at oprette alle undermapperne - det hele klares på en gang i en eneste kodelinje: http://www.EXCELGAARD.dk/Bib/API/MakeDIRs/
Og, denne funktion er forøvrigt også ligeglad med, om mappen findes i forvejen - hvis mappen findes i forvejen, så springes den blot over :-)
Unless you want to inform the user that folder does/does not exist then I would also go for a solution using API MakeDir.. which Dan explains
If you just want a quick solution, and the sub folders (Billeder, Tablet, Arkiv etc. etc.) are always the same then you could just add a mkdir for each sub folder
in this If Then
If Dir(strFolder, vbDirectory) = "*" Then MkDir strFolder
This assumes that because the main folder needs to be created then the sub folders need creating too ;-)
If the main folder exists it doesnt check that the sub folders exist or not!
Hej Dan Jeg har oprettet em Modul:API_MakeDIRs Option Compare Database #If VBA7 And Win64 Then Private Declare PtrSafe Function MakeDIRs Lib "ImageHLP.DLL" Alias "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long #Else Private Declare Function MakeDIRs Lib "ImageHLP.DLL" Alias "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long #End If
Og kalder koden i VBA: Private Sub Kommandoknap242_Click(MakeDIRs) ' * ' Initialize Const Path_To_Make As String = "D:\Dagligt\Nye sager Nedrivning\Extra\" ' * ' Make full path MakeDIRs Path_To_Make End Sub Er desværre en novice på det område, så kan ikke helt gennemskue processen...
The module should look like this if you are executing function from a form. Notice I have changed Private to Public.
Option Compare Database Option Explicit
#If VBA7 And Win64 Then Public Declare PtrSafe Function MakeDIRs Lib "ImageHLP.DLL" Alias "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long #Else Public Declare Function MakeDIRs Lib "ImageHLP.DLL" Alias "MakeSureDirectoryPathExists" (ByVal lpPath As String) As Long
#End If
The Click event should start like this (WITHOUT MakeDIRsI Private Sub Kommandoknap242_Click()
Til finb: Jeg har rigtig mange dokumenter og billeder der ligger under hver enkelt sag, så access vil hurtig nå max grænse, og til Terry og Dan, har jeg foreløbig brugt Terrys MkDir for hver enkelt undermappe. Og så lige, hvordan er det man tildeler point (flovt) ;)
Okay, også et stykke tid siden jeg har været inde på forummet. Men dejligt med nogle "skrapsakker" der vil hjælpe. Og jo, bruger den gamle kode, og så opretter med MkDir for hver undermappe, nu skal jeg se om jeg kan få oprettet undermapper til nogle af undermapperne.
Dan's metode virker fint, ingen fejl på det, udfordringen opstår når man skal oprette hovedmappen, som jo navngives efter data fra den formular den kaldes fra og bruger strengen: Me.Sagsnummer & Space(2) & Adresse & Space(2) & Postnummer & Space(2) & By f.eks. 101-0101 Paradisæblevej 11 4711 Andeby Og de faste undermapper oprettes så under denne; de mapper kunne være: Oplæg Billeder Ler og under disse andre under/under mapper
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.