IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Connecter un lecteur réseau en vba


Sujet :

VBA Access

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Connecter un lecteur réseau en vba
    Bonjour,

    J'aimerai connecter a partir de n'importe quel pc de l'entreprise un lecteur reseau bien précis. Je précise que dans mon code j'ai attribué une lettre qui est disponible (genre Z et je veux affecter a cette lettre ci un lecteur reseau bien précis qui est : "\\172.31.143.9\Surface_DCA"


    Comment faire ? merci de votre aide !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    Sub hocine_the_best()
    Dim fso As FileSystemObject
    Dim d As Drive
     
    Dim test As String
     
     
    Set fso = New FileSystemObject
     
    For Each d In fso.Drives
    test = d.DriveLetter & ":"
    rst = LetterToUNC(test)
     
    If test <> "H:" Then
    MsgBox "le lecteur H est disponible"
    interReponse = MsgBox("Voulez vous etablir la connection avec le lecteur H ?", vbQuestion + vbYesNo, "Connection Surface_DCA")
    Exit Sub
    End If
    Exit For
    Next d
     
    Set fso = Nothing
     
     
    End Sub

  2. #2
    Membre régulier Avatar de tenebriox
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 88
    Points : 119
    Points
    119
    Par défaut
    * Bonjour *
    --->

    Je n'ai jamais testé cela.
    Tu peux aussi le faire dans un .bat avec net use et dans ton appli, tu fais un shellexecute du .bat

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Désolé, je commence a peine avec le code donc si je pouvais avoir un peu plus de précisions de ta part stp ce serait sympa. Merci !

  4. #4
    Membre régulier Avatar de tenebriox
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 88
    Points : 119
    Points
    119
    Par défaut
    Et bien, tu peux utiliser le code que j'ai mis dans le premier lien normalement, en l'adaptant à ton utilisation

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    WshNetwork.MapNetworkDrive "R:","\\NOM_ORDINATEUR\REPERTOIRE",false,"NOM_UTILISATEUR","MOT_DE_PASSE"
    Sinon, je te proposais une autre solution, en créant un fichier .bat accessible via un point de partage, et ton application utiliserait la fonction shell.execute (je te laisse chercher comment l'utiliser !) pour lancer le .bat...

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Set WshNetwork = WScript.CreateObject("WScript.Network")

    je le remplace par quoi Wscript.Network ? ca me met un message d'erreur

  6. #6
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Merci de faire une recherche avant de poster :

    http://access.developpez.com/sources...rLecteurReseau


  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Justement le code dans F.A.Q ACCESS est mauvais, il y a une erreur. j'ai trouvé la solution grâce a mes collègues.

    Voici le bon module pour que le code fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    Option Compare Database
    'Déclaration de la constante définissant un lecteur reseau
    Private Const RESOURCETYPE_DISK As Long = &H1&
    'Déclaration des fonctions de l'api windows
    Private Declare Function WNetAddConnection2 Lib "mpr.dll" Alias _
      "WNetAddConnection2A" (lpNetResource As NETRESOURCE, _
      ByVal lpPassword As String, ByVal lpUserName As String, _
      ByVal dwFlags As Long) As Long
      
    Private Declare Function WNetCancelConnection Lib "mpr.dll" Alias _
      "WNetCancelConnectionA" (ByVal lpszName As String, _
      ByVal bForce As Long) As Long
    'Déclaration du type NetResource (nécessaire pour la fonction WnetAddConnection)
    Private Type NETRESOURCE
        dwScope As Long
        dwType As Long
        dwDisplayType As Long
        dwUsage As Long
        lpLocalName As String
        lpRemoteName As String
        lpComment As String
        lpProvider As String
    End Type
    
    Public Function ConnecterLecteur(strChemin As String, strLettre As String, _
      Optional strUtilisateur As String, Optional strMotDePasse As String) As Long
    Dim RessourceReseau As NETRESOURCE
    'Déclare et paramètre la ressource réseau
    With RessourceReseau
      .lpRemoteName = strChemin
      .lpLocalName = strLettre
      .dwType = RESOURCETYPE_DISK
    End With
    'Tente la connexion et retourne vrai en cas de succès
    ConnecterLecteur = WNetAddConnection2(RessourceReseau, strMotDePasse, strUtilisateur, 0) = 0
    End Function
    
    Public Function DeconnecterLecteur(strLettre As String, _
      Optional bolForce As Boolean = False) As Long
    'Deconnecte et retourne la réponse
    DeconnecterLecteurReseau = WNetCancelConnection(strLettre, IIf(bolForce, 1, 0)) = 0
    Donc je resume dans le code que vous proposez est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public Function connecterLecteur(strLettre As String, _
      Optional bolForce As Boolean = False) As Boolean
    Il faut pas mettre boolean mais Long pour que le code passe.

    Merci bien en tout cas.

  8. #8
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Le As Boolean est bien correct, un long est inutile puisque la comparaison

    WNetCancelConnection(strLettre, IIf(bolForce, 1, 0)) = 0

    retourne un booleen et non un numérique. C'est une comparaison, et non une opération

    EDIT : et je viens de re-tester le code de la page source, il fonctionne très bien

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Pour le code ci dessous qui permet de connecter un lecteur, j'ai du enlever As Boolean et le remplacer par As Long pour que ça fonctionne chez moi.


    Chez vous le code fonctionne sans faire aucun changement ? Bizarre bizarre.

    Public Function ConnecterLecteur(strChemin As String, strLettre As String, _
    Optional strUtilisateur As String, Optional strMotDePasse As String) As Long
    Dim RessourceReseau As NETRESOURCE
    'Déclare et paramètre la ressource réseau
    With RessourceReseau
    .lpRemoteName = strChemin
    .lpLocalName = strLettre
    .dwType = RESOURCETYPE_DISK

  10. #10
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Il s'agit d'une affectation à une variable d'un résultat d'une comparaison qui retourne soit True ou soit False et non un numérique. Je ne vois pas ce que viendrait faire un As Long ... Principe de base d'algorithmie

Discussions similaires

  1. Connecter un lecteur réseau en vba
    Par ninouchfis dans le forum Général VBA
    Réponses: 9
    Dernier message: 21/05/2012, 11h02
  2. connecter un lecteur réseau
    Par adil_math2006 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 22/02/2007, 14h28
  3. Connecter un lecteur réseau aux demarrage de l'application
    Par devlopassion dans le forum C++Builder
    Réponses: 5
    Dernier message: 30/01/2007, 19h31
  4. [VBA-E]Connecter un lecteur réseau
    Par denjac dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 10/02/2006, 08h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo