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

Macros et VBA Excel Discussion :

Fonction RechercheV vers fichier Access qui se trouve dans un dossier avec mot de passe


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 55
    Points : 43
    Points
    43
    Par défaut Fonction RechercheV vers fichier Access qui se trouve dans un dossier avec mot de passe
    Bonjour,
    Avec la fonction suivante, j'importe des données qui se trouvent dans une base de données Access vers Excel. Le fichier Excel pourra être partagé à tous les usagers, mais ce n'est pas tous les usagers qui ont accès au dossier partagé où se trouve la base de données Access. Est-ce possible de leur permettre d'y avoir accès en ajoutant mon nom d'utilisateur et mot de passe dans le code?


    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
    Public Connexion
     
    Function RecherchevAccess(ChampRecherche, valeurRecherche, champRetour, tbl, base)
        Dim GenereCSTRING As String
        Dim rs
        Application.EnableEvents = False
        Application.ScreenUpdating = False
     
     
        If Connexion.State = 0 Then
            Fichier = "G:" & "\" & base
            GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Persist Security Info=False"
            Connexion.Open GenereCSTRING
        End If
     
        Sql = "Select " & champRetour & " FROM " & tbl & " Where " & _
            ChampRecherche & "='" & valeurRecherche & "'"
        Set rs = CreateObject("ADODB.Recordset")
        rs.Open Sql, Connexion, 1, 3
        If rs.EOF = False Then RecherchevAccess = rs(champRetour)
        rs.Close
        Application.EnableEvents = True
        Application.ScreenUpdating = True
     
    End Function

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    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
    Public Connexion
     
    Function RecherchevAccess(ChampRecherche, valeurRecherche, champRetour, tbl, base)
        Dim GenereCSTRING As String
        Dim rs
        Application.EnableEvents = False
        Application.ScreenUpdating = False
     
     
        If Connexion.State = 0 Then
            PassWord= inputbox("Etrez pass")
            Fichier = "G:" & "\" & base
            GenereCSTRING = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Fichier & ";Persist Security Info=False;user=admin;Passwors=" & PassWord
        on error resume next
            Connexion.Open GenereCSTRING
        on error goto 0
            if Connexion.State = 0 Then exit fonctions 
        End If
     
        Sql = "Select " & champRetour & " FROM " & tbl & " Where " & _
            ChampRecherche & "='" & valeurRecherche & "'" 
        Set rs = CreateObject("ADODB.Recordset")
        rs.Open Sql, Connexion, 1, 3
        If rs.EOF = False Then RecherchevAccess = rs(champRetour)
        rs.Close
        Application.EnableEvents = True
        Application.ScreenUpdating = True
     
    End Function
    Dernière modification par Invité ; 23/04/2015 à 21h43.

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Août 2014
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2014
    Messages : 55
    Points : 43
    Points
    43
    Par défaut
    Bonjour et merci encore. J'ai changé la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if Connexion.State = 0 Then exit fonctions
    Pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Connexion.State = 0 Then Exit Function
    Parce qu'il ne semble pas aimer la "fonction" écrit en français. Malheureusement, ça ne fonctionne toujours pas, mais je pense que je me suis mal exprimée: le dossier partagé où se trouve le fichier de base de données Access est en fait un "network drive" (pas sûre du terme français, disque réseau?). J'ai trouvé ce code qui semble proche de ce que j'essaie de faire :

    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
    Public Sub TestNetShareName()
     
        Dim NetworkObject As Object
        Dim FSO As Object
        Dim Directory As Object
        Dim Filename As Object
        Dim ServerShare As String
        Dim UserName As String
        Dim Password As String
     
        ServerShare = "\\corp-server\HostingFolder"
        UserName = "mydomain\myuser"
        Password = "freddie123"
     
        Set NetworkObject = CreateObject("WScript.Network")
        Set FSO = CreateObject("Scripting.FileSystemObject")
     
        NetworkObject.MapNetworkDrive "", ServerShare, False, UserName, Password
     
        Set Directory = FSO.GetFolder(ServerShare)
        For Each Filename In Directory.Files
            Debug.Print Filename.Name
        Next
     
        Set Filename = Nothing
        Set Directory = Nothing
        Set FSO = Nothing
     
        NetworkObject.RemoveNetworkDrive ServerShare, True, False
     
        Set NetworkObject = Nothing
     
    End Sub
    J'ai bien sûr changé les variables Servershare, Username et password pour tester, mais il bloque toujours à la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     For Each Filename In Directory.Files
    Donc il ne semble pas reconnaître le répertoire. Pourtant, j'ai écrit la variable Servershare sous le même format qu'eux : je ai copié l'équivalent de "\\corp-server\HostingFolder" tel qu'il s'affiche à l'écran de mon ordinateur. Si je peux faire fonctionner ce code, je pourrai peut-être par la suite l'adapter à ma fonction RechercheV.

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/10/2012, 01h18
  2. Réponses: 26
    Dernier message: 26/01/2011, 14h24
  3. [XL-2007] Trouver un bout de code dans des fichiers Excel qui se trouve dans un répertoire
    Par Paloma dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/11/2010, 16h23
  4. Réponses: 1
    Dernier message: 30/07/2010, 14h39
  5. inclure un fichier .bib qui se trouve dans un autre dossier
    Par nunuss35 dans le forum Bibliographies - Index - Glossaires
    Réponses: 4
    Dernier message: 26/01/2010, 21h00

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