Newsgroup: it.comp.appl.access
Titolo: Ricerca disco

Ho la necessita di archiviare periodicamente un db in un disco rimovibile
pendrive a cui ho assegnato la lettera K
Prima di procedere all'archiviazione pero dovrei controllare se il il disco
è presente, quello che chiedo è :
esiste una funzione per verificare se esiste un disco?
grazie

 ha scritto nel messaggio 
news:uRvMg.100391$zy5.1...@twister1.libero.it...

Salve Debora
Potresti utilizzare la libreria Microsoft Scripting Runtime, utilizzando il 
metodo GetDrive e le sue proprietà IsReady e AvailableSpace, mentre per il 
file mdb che devi salvare, potresti utilizzare il metodo GetFile e la sua 
proprietà Size (Per vedere se l'unità può accogliere il file comparando Size 
con AvailableSpace).
L'unica cosa, non ho mai provato con una PenDrive
Può darsi che qualcun'altro ti dia una dritta più semplice di questa, questo 
è il metodo che uso io.
Saluti
Michele

 ha scritto nel messaggio 
news:uRvMg.100391$zy5.1...@twister1.libero.it...

Se l'autore me lo consente, ti propongo questa sub che mi ha consigliato 
Grande Mago Sergio Mazza:
--------------------------------------------------------------------------------------
On Error Resume Next
Dim WshNet
Set WshNet = CreateObject("Wscript.Network")
WshNet.MapNetworkDrive "Z:", "\\nomePc\risorsaDaMappare", , "utente",
"password"
If Err.Number = 0 Then
    'Fai quello che devi fare
Else
    MsgBox "Risorsa non disponibile"
End If
Set WshNet = Nothing
On Error GoTo 0
--------------------------------------------------------------------------------
Se lo ripeti senza disconnetterlo ti presenta errore perché la risorsa, con 
quella lettera, è già mappata.
Manca quindi il pezzo di codice che ti effettua la disconnessione, io uso 
questo:
=========================================
Sub wshUnMapDrive()
On Error Resume Next
Dim WshNet
Set WshNet = CreateObject("Wscript.Network")
WshNet.RemoveNetworkDrive "Z:"
Set WshNet = Nothing
On Error GoTo 0
End Sub
============================================
Altre info interessanti le trovi qui:
qui:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/scriptinga.asp
Puoi anche scaricarlo in italiano...
Ciao.

 ha scritto nel messaggio
news:uRvMg.100391$zy5.1...@twister1.libero.it...

Ciao Debora,
con le API ?
Questo codice andrebbe implementato con al possibilità che la pen Drive
abbia un nome diverso da K.
Lo copi cosi com'è in una maschera e se non hai la pen drive attaccata al PC
te lo segnala in apertura della form.
Ciao e buon week end !
Sandro
Option Compare Database
Option Explicit
Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias _
    "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, _
    ByVal lpBuffer As String) As Long
Private Function fGetDrives() As String
'Returns all mapped drives
    Dim lngRet As Long
    Dim strDrives As String * 255
    Dim lngTmp As Long
    lngTmp = Len(strDrives)
    lngRet = GetLogicalDriveStrings(lngTmp, strDrives)
    fGetDrives = Left(strDrives, lngRet)
End Function
Private Function sListAllDrives() As Boolean
    Dim strAllDrives As String
    Dim strTmp As String
    strAllDrives = fGetDrives
    If strAllDrives <> "" Then
        Do
            strTmp = Mid$(strAllDrives, 1, InStr(strAllDrives, vbNullChar) -
1)
            strAllDrives = Mid$(strAllDrives, InStr(strAllDrives,
vbNullChar) + 1)
            If Replace(strTmp, "\", "") = "K:" Then
                sListAllDrives = True
                Exit Do
            End If
        Loop While strAllDrives <> ""
    End If
End Function
Private Sub Form_Open(Cancel As Integer)
     If Not sListAllDrives Then MsgBox "Pen drive non trovato"
End Sub

 Grazie ci provo
Ciao

 ha scritto nel messaggio 
news:uRvMg.100391$zy5.1...@twister1.libero.it...

Puoi anche provare con la funzione Dir (vedi help attivabile con ALT-F11 poi 
F1)
es.
Dim retVal As String
If Dir("K:\mioFile.mdb") = "" Then
    MsgBox "Ho l'impressione che il disco K non esista."
Else
    MsgBox "Tutto ok."
End If
Ciao.
-- 
Sergio MAZZA 

 Ciao.
Grazie per la citazione ma non sono l'autore; il suggerimento non va bene in 
questo caso. Oltre a tutti gli altri suggerimenti è possibile anche elencare 
i dischi presenti nel pc:
'---
   Dim fso, d, t, dc
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set dc = fso.Drives
       For Each d In dc
        Set d = fso.GetDrive(d.DriveLetter)
        Select Case d.DriveType
            Case 0: t = "sconosciuta"
            Case 1: t = "removibile"
            Case 2: t = "fissa"
            Case 3: t = "di rete"
            Case 4: t = "CD-ROM"
            Case 5: t = "disco RAM"
        End Select
        Debug.Print "Unita " & d.DriveLetter & ": - " & t
        Set d = Nothing
        Next
Set dc = Nothing
Set fso = Nothing
'---
Sempre utilizzando VBS/WSH (info nel link che hai riportato tu)...
Ciao.
-- 
Sergio MAZZA