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

Résolu
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

6 réponses

  1. 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
    
    
    1. Contributeur
      "sans résultat": aucun message d'erreur?
      plutôt ainsi:
      if fs.FolderExists("E:\InstAppSLiquidations\AppSLiquidations") then
  2. 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
    
  3. 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.
    1. 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
      1. Contributeur
        "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
      2. Modérateur
        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:...