Avatar billede taio Novice
11. august 2006 - 11:04 Der er 12 kommentarer og
1 løsning

Tjek om disk findes

Hej alle eksperter

Jeg sidder med en access2000 database, hvor jeg har lavet en knap som kopier en fil til en USB-disk. Mit sp. lyder hvordan kan jeg tjekke om usb-disken er isat inden den kører filecopy. Altså en popup boks som fortæller at f.eks. F:\ ikke findes. Så jeg slipper for fejl, når min usb-disk ikke er sat i og F-drevet er aktivt.

Hjælp
Avatar billede Slettet bruger
11. august 2006 - 11:16 #1
Du kunne jo lave en error handling, med en msgbox "Tjek usb-disk"
Avatar billede taio Novice
11. august 2006 - 11:41 #2
Tak for hurtig tilbagemelding, men hvordan laver jeg en error handling på om en disk findes eller ej ??
Avatar billede -anders- Juniormester
11. august 2006 - 13:47 #3
Prøv dette, måske det virker:

I toppen af din kode skriver du:

On Error GoTo errhandler
'her din kopieringskode'
'som det nederste i din kode skriver du'
If err.Number = fejlnummer som koden evt. returnere Then Exit Sub

Fejlhåndteringen vil så forlade subben uden at gøre skade, og uden at der popper fejlmedelser op når din USB disk ikke klar. Bemærk at mit forslag forudsætter at du kender
Avatar billede -anders- Juniormester
11. august 2006 - 13:48 #4
Bemærk at mit forslag forudsætter at du kender fejlnummer :o)
Avatar billede -anders- Juniormester
11. august 2006 - 14:14 #5
Jeg bruger selv denne form for fejlhåndtering i mange sammenhænge i Access databaser, og det virker faktisk godt.

Jeg anvender også en kopieringskode dog til A-drevet, men metoden er den samme, jeg mener at fejlkoden er fejl 71, men er ikke sikker, når jeg når hjem i aften kan jeg poster fejlkoden her.
Avatar billede taio Novice
11. august 2006 - 14:20 #6
den kommer med en fejl ved errhandler ??
Exit sub, skal vel også stå under if err.number ??
Avatar billede -anders- Juniormester
11. august 2006 - 14:26 #7
Sorry min fejl nedentsående testet og viker:

Private Sub Kommandoknap1_Click()
On Error GoTo errhandler
FileCopy Me!Filnavn, "A:\" & ExtractFileName(Me!Filnavn)
errhandler:
If Err.Number = 71 Then Exit Sub
End Sub
Avatar billede -anders- Juniormester
11. august 2006 - 14:26 #8
Dette "FileCopy Me!Filnavn, "A:\" & ExtractFileName(Me!Filnavn)" skal naturligvis erstattes af din egen kode
Avatar billede -anders- Juniormester
11. august 2006 - 14:30 #9
Her en lidt udvidet version hvor du viser bruger din egen fejlmedelse;

Private Sub Kommandoknap1_Click()
On Error GoTo errhandler
FileCopy Me!Filnavn, "A:\" & ExtractFileName(Me!Filnavn)
errhandler:
If Err.Number = 71 Then
MsgBox "USB key mangler, indsæt denne og prøv igen", vbCritical, "USB key mangler"
Exit Sub
End If
End Sub
Avatar billede Slettet bruger
13. august 2006 - 09:44 #10
Hej, så havde jeg endelig tid til et hurtigt kig forbi!~)

Hvis du ikke er 100% sikker på errorkode, så kan du tage usb nøglen ud og køre koden:

Private Sub Kommandoknap1_Click()
On Error GoTo errhandler
FileCopy Me!Filnavn, "A:\" & ExtractFileName(Me!Filnavn)
errhandler:
msgbox err.number
'If Err.Number = 71 Then
'MsgBox "USB key mangler, indsæt denne og prøv igen", vbCritical, "USB key mangler"
Exit Sub
End If
End Sub
Avatar billede taio Novice
13. august 2006 - 10:53 #11
Tak til alle
Avatar billede -anders- Juniormester
13. august 2006 - 11:12 #12
Tak for point :o)
Avatar billede hugopedersen Nybegynder
21. august 2006 - 12:00 #13
Du kan evt. checke på om folderen f:\ eksisterer med følgende kode

Public Function fhpFolder_Exists(strFolder As String) As Boolean
' -----------------------------------------------------------------------------------
' Purpose    : Check if a folder exists
' Parameters :
' Returns    : Boolean
' Created    : 03-26-02
' Modified  :
' Remarks    :
' -----------------------------------------------------------------------------------
On Error GoTo Error_fhpFolder_Exists
  Dim fsObj                                                    'Filesystem object

  Set fsObj = CreateObject("Scripting.FileSystemObject")
  fhpFolder_Exists = fsObj.FolderExists(strFolder)

Exit_fhpFolder_Exists:
  Exit Function

Error_fhpFolder_Exists:
  Select Case Err.Number
    Case 2501
    Case 3021
    Case Else
      MsgBox Err.Number & ": " & Err.Description, vbOKOnly + vbCritical, "Error in procedure 'fhpFolder_Exists'"
  End Select
  Resume Exit_fhpFolder_Exists

End Function
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