28. august 2006 - 12:58Der 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.
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 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?
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
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.