Avatar billede verakso Nybegynder
28. august 2006 - 12:58 Der er 4 kommentarer og
1 løsning

Oprette en mappe, med tryk på en knap fra Access

Jeg er lidt af en båtnakke til Access, så jeg har brug for lidt hjælp til denne.

Når jeg klikker på en knap på en formular, så vil jeg gerne have at
1) Der tjekkes om en given mappe findes
2a) Hvis ikke, så kommer der en dialog boks om man ønsker mappen oprettet
2b) Hvis den findes, åbnes mappen i stifinder(explorer).

Den drilske del er, at det skal kunne køre på et mappet netværksdrev, og at stien til mappen, dannes ud fra nogle felter i databasen.
Avatar billede supertekst Ekspert
28. august 2006 - 14:59 #1
Option Compare Database
Private Sub Kommandoknap0_Click()
Dim fs, sti, svar
    sti = "d:\omega"                                'test mappe
   
    Set fs = CreateObject("Scripting.FileSystemObject")
        If fs.folderexists(sti) = False Then
            svar = MsgBox("Vil du oprette mappen " & sti + "?", vbYesNo)
            If svar = 6 Then
                fs.createfolder (sti)
            End If
        Else
            Application.FollowHyperlink sti, True
        End If
End Sub

Det "drilske" må du oplyse lidt mere om.
Avatar billede verakso Nybegynder
28. august 2006 - 15:36 #2
Det drilske var, at jeg ikke fatter ret meget af Access, og at det ej heller er mig der har lavet formularen - så jeg skulle lige fatte hvilken forespørgsel der blev brugt. Efter at have tweaket denne lidt, så fik jeg fat i de data der skulle til, for at kunne opbygge stien til mappen.

Din kode virker smukt, så smid et svar og få dine velfortjente point.

En lille bonus ? er dog. Er det strengt taget nødvendigt at oprettet datafeltet på formualaren for at få det med?

Min færdige kode så således ud:

Private Sub imgFolder_Click()

Dim fs, sti, svar
    sti = Me.DataSti.Value & "\" & Me.JobID.Value
    Set fs = CreateObject("Scripting.FileSystemObject")
        If fs.folderexists(sti) = False Then
        svar = MsgBox("Vil du oprettet mappen " & sti + "?", vbYesNo)
        If svar = 6 Then
            fs.createfolder (sti)
            Application.FollowHyperlink sti, True
        End If
        Else
            Application.FollowHyperlink sti, True
        End If
End Sub

Værdien DataSti kommer fra en anden tabel, men ved at koble den på forespørgslen kommer den med i dataudtrækket til formualaren. Men for at kunne benytte værdien, har jeg sat en skjult tekstboks ind på formualren (DataSti) for at kunne fange den i koden, men er der en pænere måde?
Avatar billede supertekst Ekspert
28. august 2006 - 17:15 #3
Tak for det! :-)

Værdien kunne nok hentes direkte fra den underliggende tabel/foresp. - idet der så skulle refereres til det pågældende felt.
Avatar billede verakso Nybegynder
29. august 2006 - 22:03 #4
Okay, men hvordan referere jeg så til en værdi i tabellen/forespørgslen?
Me.DataSti.Value optræder jo kun fordi den er tilstede på formualaren.

Jeg takker for svaret og strækker den lige en tand mere...
Formularen bygger jo på en forespørgsel. Ny har jeg lavet et felt i db'en i forespørgslen og i formluaren der hedder Tidligere job.
Meningen er at man her kan referere til et tidligere JobID, men det virkeligt spiffe kunne være.
1) At tjekke for det indtastede Tidligere Job id faktisk eksisterer som et JobID i basen og
2) Når man klikker på feltet at formularen så skifter til dem record med det pågældende JobID
Avatar billede supertekst Ekspert
30. august 2006 - 09:20 #5
Jeg skal nok vende tilbage...
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester