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

Résolu
Lenouveauapprenti Messages postés 306 Date d'inscription   Statut Membre Dernière intervention   -  
Lenouveauapprenti Messages postés 306 Date d'inscription   Statut Membre Dernière intervention   -
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. Lenouveauapprenti Messages postés 306 Date d'inscription   Statut Membre Dernière intervention   2
     
    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
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      "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
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 772
       
      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
  2. Lenouveauapprenti Messages postés 306 Date d'inscription   Statut Membre Dernière intervention   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.
    0
  3. Lenouveauapprenti Messages postés 306 Date d'inscription   Statut Membre Dernière intervention   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
    
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. Lenouveauapprenti Messages postés 306 Date d'inscription   Statut Membre Dernière intervention   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
    
    
    0
    1. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       
      "sans résultat": aucun message d'erreur?
      plutôt ainsi:
      if fs.FolderExists("E:\InstAppSLiquidations\AppSLiquidations") then
      0
  6. Lenouveauapprenti Messages postés 306 Date d'inscription   Statut Membre Dernière intervention   2
     
    Merci pour tout.
    Avec mes sincères gratitudes
    0