Avatar billede hlnviv Mester
22. januar 2015 - 09:52 Der er 5 kommentarer og
1 løsning

Knap til at slette usb-stik

Hej Eksperter
Jeg har brugt denne knap/kode i Access til at slette mit diskette drev a:,

Private Sub Kommandoknap19_Click()
Dim stAppName As String

Shell "cmd /c DEL  a:\*.* /q"
   
End Sub

Koden skal nu slette et USB-stik i stedet, også vil jeg gerne have den kun sletter på det USB stik med et specifik navn og da det ikke altid er ved samme pc så drevet ikke altid har samme drev bogstav ved jeg ikke lige hvordan min kode skal se ud. Det er altid det samme USB-stik eller samme navn på USB-stik, der bliver brugt og USB-stikket skal altid slettes/tømmes helt. Håber i kan hjælpe mig
Avatar billede bvirk Guru
22. januar 2015 - 12:44 #1
Hvis usb stikken i en given computer monterer sig som drive e: giver følgende usb drevets serienummer
CreateObject("Scripting.FileSystemObject").GetDrive("e:\").SerialNumber

Det er hvad der kan ses hexidecimalt med den i cmd.exe interne vol kommando. - i vba hex(...)

Følgende går den anden vej

Function drivePath(serNr)
    Dim d
    With CreateObject("Scripting.FileSystemObject")
        For Each d In .Drives
            If d.isReady Then
                If d.SerialNumber = serNr Then
                    drivePath = d.path & "\"
                    Exit Function: End If: End If: Next: End With
End Function
Avatar billede hlnviv Mester
23. januar 2015 - 09:22 #2
Er ikke så skarp i programmering... skal det der står under "Følgende går den anden vej" laves i et modul og skal "CreateObject("Scripting.FileSystemObject").GetDrive("e:\").SerialNumber
" så stå bagved knappen i vba-koden.

Håber du forstår hvad jeg mener
Avatar billede hlnviv Mester
23. januar 2015 - 09:34 #3
Lad os sige mit usb stil hedder 123
Avatar billede bvirk Guru
23. januar 2015 - 11:19 #4
Jeg kan se at jeg knap svarede på dit oprindelige spørgsmål - du snakkede om disken navn og jeg svarede noget om disken serienummer - sådan kan det gå ;)

Dette er helt i mål skulle jeg mene

Private Sub Kommandoknap19_Click()
    Dim d
    With CreateObject("Scripting.FileSystemObject")
        For Each d In .Drives
            If d.isReady Then
                If d.VolumeName = "123" Then
                    If MsgBox("Skal alle filer i mappen " & d.path & "\ slettes ?", vbYesNo + vbDefaultButton2, "SLET ALT PÅ DREV ROD") = vbYes Then
                        shell "cmd /c del " & d.path & "\*.* /q"
                    Exit Sub: End If: End If: End If: Next: End With
End Sub
Avatar billede bvirk Guru
23. januar 2015 - 11:25 #5
... og der skal ikke laves noget standard modul - det skal lige som din oprindelige
  Private Sub Kommandoknap19_Click()
ligge i formens objektkode modul.
Avatar billede hlnviv Mester
23. januar 2015 - 12:53 #6
Super tak for hjælpen
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