Détecter la Clé USB dans l'unité E:\

Résolu/Fermé
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 - 29 mai 2020 à 21:19
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 - 3 juin 2020 à 22:01
Bonjour

NB : Environnement du travail VB6 avec acces 2007

Je cherche une commande qui m'avise si l'unité E:\ est vide ( n'est pas connectée à une clé USB)

Merci pour votre aide
A voir également:

6 réponses

yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
30 mai 2020 à 09:25
0
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 2
3 juin 2020 à 13:49
Bonjour,

Merci pour le lien, sincèrement je n'arrive pas à bien comprendre comment devrais je utiliser cette méthode de DriveExists

j'ai essayé le code ci dessous sans résultat

Dim oFileSysObj

If oFileSysObj.driveexists("E") = False Then
MsgBox "Veuillez insérer une Clé USB"
Exit Sub
End If


Merci pour toute aide
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
3 juin 2020 à 14:56
"sans résultat": qu'observes-tu? rien ne se passe, aucun message d'erreur?
d'habitude, on fait plutôt ainsi:
Dim oFileSysObj as Scripting.FileSystemObject
set oFileSysObj = new Scripting.FileSystemObject
If oFileSysObj.driveexists("E") = False Then
     MsgBox "Veuillez insérer une Clé USB"
     Exit Sub
End If
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 744
3 juin 2020 à 15:03
Bonjour,

Apparemment, vous n'avez pas tout bien lu le lien de yg_be.
Ou alors en diagonale...

Pour les lecteurs dotés d’un média amovible, la méthode DriveExists renvoie True même si aucun média n’est présent.
Utilisez la propriété IsReady de l'objet Drive pour déterminer si un lecteur est prêt.


Sub essai()
Dim fs As Object, driv As Object
    Set fs = CreateObject("Scripting.FileSystemObject")  'création d'un objet FileSystemObject
    On Error Resume Next
    Set driv = fs.GetDrive(fs.GetDriveName("E:"))  'création d'un objet Drive auquel on affecte le lecteur E:
    On Error GoTo 0
    If Not driv Is Nothing Then  'Si le lecteur E: existe
        If driv.IsReady Then  'si il est prêt (média inséré)
            MsgBox "Cool, il y a une clé dans le lecteur E:"
        Else   'si il n'est pas prêt (pas de média inséré)
            MsgBox "Veuillez insérer une Clé USB"
        End If
    Else   'si le lecteur E: n'existe pas...
        MsgBox "Le lecteur E: n'existe pas"
    End If
End Sub


Je ne peut pas tester ce code, je n'ai pas de lecteur E:...
0
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 2
Modifié le 3 juin 2020 à 15:54
Au contraire, je l'ai lu, seulement à cette fonction de création d'objet
(CreateObject("Scripting.FileSystemObject")
l'application de me renvoyait un message concernant concernant ActiveX
En plus, et pour vous dire la vérité je ne l'ai pas bien assimilé.

Je vais essayé votre proposition et je vous dirai le résultat.

Merci à vous, à yg_be, et tous.
0
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 2
3 juin 2020 à 17:24
Votre code fonctionne à merveille, auquel j'ai ajouté quelques lignes pour mes besoins, mais, j'ai échoué une autre fois.
L'idée une fois la clé USB est détectée, vérifie si le chemin de la BD existe.
Merci de bien vouloir corriger ce que j'ai ajouté.

Dim fs As Object, driv As Object

             'premiere  declaration ajoutée 
             Dim Doss As String
             Doss = "E:\InstAppSLiquidations\AppSLiquidations\BDLiquidations.mdb"

    Set fs = CreateObject("Scripting.FileSystemObject")  'création d'un objet FileSystemObject
    On Error Resume Next
    Set driv = fs.GetDrive(fs.GetDriveName("E:"))  'création d'un objet Drive auquel on affecte le lecteur E:
    On Error GoTo 0
    If Not driv Is Nothing Then  'Si le lecteur E: existe
        If driv.IsReady Then  'si il est prêt (média inséré)
                 
'  deuxième ajout : Affectation un chemin vers la BD
driv.GetAbsolutePathName ("E:\InstAppSLiquidations\AppSLiquidations\BDLiquidations.mdb")

                If driv.GetAbsolutePathName = Doss Then 'Verification de l'existence du chemin
                 MsgBox "Chemin trouvé"
                 Call CheminCopies  'Chemin pour copier les enregistrements manquants
                 Exit Sub
                 Else
                 MsgBox "Chemin non trouvé"
                 Exit Sub
                 End If
                
            'MsgBox "Cool, il y a une clé dans le lecteur E:"
        Else   'si il n'est pas prêt (pas de média inséré)
            MsgBox "Veuillez insérer une Clé USB"
        End If
    Else   'si le lecteur E: n'existe pas...
        MsgBox "Le lecteur E: n'existe pas"
    End If
0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
3 juin 2020 à 17:42
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 2
3 juin 2020 à 18:00
Merci pour le lien, franchement je n'ai pas pu appliquer ce que j'ai lu, faute de compréhension.
j'ai essayé ce qui suit sans résultat, pourtant je l'ai tenté avant d'user de la méthode : driv.GetAbsolutePathName

 'Affection un chemin vers la BD

 driv.FolderExists ("E:\InstMezAppSLiquidations\MezAppSLiquidations\BDLiquidations.mdb")

                If driv.FolderExists = Doss Then 'Verification de l'existence du chemin
                 MsgBox "Chemin trouvé"
                 Call CheminCopies  'Chemin pour copier les enregistrements manquants
                 Exit Sub
                 Else
                 MsgBox "Chemin non trouvé"
                 Exit Sub
                 End If
                
            'MsgBox "Cool, il y a une clé dans le lecteur E:"
        Else   'si il n'est pas prêt (pas de média inséré)
            MsgBox "Veuillez insérer une Clé USB"
        End If

0
yg_be Messages postés 22730 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
3 juin 2020 à 19:02
"sans résultat": aucun message d'erreur?
plutôt ainsi:
if fs.FolderExists("E:\InstAppSLiquidations\AppSLiquidations") then
0
Lenouveauapprenti Messages postés 300 Date d'inscription samedi 22 décembre 2018 Statut Membre Dernière intervention 7 avril 2024 2
3 juin 2020 à 22:01
Merci pour tout.
Avec mes sincères gratitudes
0