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. 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:...
  2. 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. 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
      
    2. 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