access en verkenner

  • Onderwerp starter Onderwerp starter bva
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

bva

Gebruiker
Lid geworden
2 feb 2009
Berichten
28
Hallo,
Ik heb een projectdatabase in Access.
Hier vul ik o.a. ordernummer en omschrijving in (simpel).
Vervolgens maak ik een mapje aan voor deze zelfde order in verkenner.
Is er een mogelijkheid dat je dit in 1 keer doet met Access?

Ben
 
Dat kan met het commando
MkDir "MIJNDIR"
 
bedankt voor je reactie.
kan je dit uitleggen hoe je dit in access zet?

Ben
 
Meestal hang je dit soort handelingen achter een knop op een formulier. Ik gebruik het wel om een map aan te maken op basis van een pad dat ik laat samenstellen uit een aantal gegevens. Daar heb ik een vaste routine voor gemaakt, die controleert of het specifieke pad bestaat, en als dat niet het geval is, de noodzakelijke mappen aanmaakt. Je kunt overigens niet in één keer een map in een aantal submappen maken; je moet laag voor laag apart aanmaken. Vandaar mijn procedure.
Als je niet wegschrikt voor visual basic, zet ik 'm hier wel neer.
 
zou je deze willen posten?
dan kijk ik hoe ver ik kom.
Ben
 
OK, niet schrikken:
Maak een tekstvak met de naam [filepath]. Zet hier het pad in dat moet worden gemaakt.
Onder een knop zet je bij de Click event deze commando's:

Code:
dim strPath as String
strPath = Me.filepath
Call PadMaken(strPath)

In een (nieuwe of bestaande) module plak je deze functies:

Code:
Public Sub PadMaken(Path As String)
'Versie laatst bijgewerkt: 2-4-2008
Dim tempPad() As String, NieuwPad As String, i As Integer, x As Integer, y As Integer, bCheck As Boolean
bCheck = False
NieuwPad = ""
x = 0
y = 1
i = 1

    If InStr(1, Path, "\") > 0 Then
        Do Until InStr(y, Path, "\") = 0
            i = InStr(y, Path, "\")
            x = x + 1
            ReDim Preserve tempPad(x)
            tempPad(x) = Mid(Path, y, i - y)
            y = i + 1
        Loop
    End If
    
    NieuwPad = tempPad(1) & "\"
    For i = 1 To x
        If PadBestaat(NieuwPad) = True Then
            If i + 1 <= x Then NieuwPad = NieuwPad & tempPad(i + 1) & "\"
        Else
            bCheck = True
            MkDir NieuwPad
            If i + 1 <= x Then NieuwPad = NieuwPad & tempPad(i + 1) & "\"
        End If
    Next
    If bCheck = True Then MsgBox "Map " & NieuwPad & " is aangemaakt", vbOKOnly, "Mappen aanmaken"

End Sub

Code:
Function PadBestaat(PathName As String) As Boolean
'Versie laatst bijgewerkt: 2-4-2008
Dim iTemp As Integer
     
    On Error Resume Next
    iTemp = GetAttr(PathName)
     
    Select Case Err.Number
    Case Is = 0
        PadBestaat = True
    Case Else
        PadBestaat = False
    End Select
     
    On Error GoTo 0

End Function
Zou moeten werken...
 
euh toch wel moeilijk.
ik heb het geprobeerd net maar niet echt goed.
meer kennis nodig van vba denk ik.
zou je een access-bestand met formulier willen opzetten waar die knop dan in staat?
en dat dit werkt zeg maar?
dan kan ik dit weer gebruiken om zelf dit te leren/begrijpen.
ben
 
bedankt Octafish voor de bestanden.
ik ga er mee aan de slag.
je hoort nog wel of het ook bij mij werkt.
Ben
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan