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 :

Connexion SQL SERVER vba


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    A mon compte
    Inscrit en
    Décembre 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : A mon compte

    Informations forums :
    Inscription : Décembre 2015
    Messages : 53
    Par défaut Connexion SQL SERVER vba
    Bonjour à tous,
    Je migre sur SQL Server une base de données qui était utilisée sur un NAS, avec un popup de connexion ID et MDP.
    Je réutilise ce popup pour me connecter à SQL Server, et création automatique du DSN. Tout fonctionne très bien, mais le seul souci, c'est qu'a chaque nouvelle session, pour ouvrir une table, il faut de nouveau saisir le MDP via la fenêtre DSN. Il n'y a pas de case à cocher pour mémoriser le mot de passe...
    Le nom d'utilisateur est bien mémorisé par le script de création du DSN

    Nom : Capture écran 2019-04-06 à 14.29.34.jpg
Affichages : 1053
Taille : 70,4 Ko

    Existe t-il un bout de code VBA pour qu'a chaque ouverture de session, après authentification sur SQL Server au démarrage, que la connexion aux tables se fasse automatiquement ?
    Je tourne en rond sur le WEB à chercher, mais ne trouve rien de pertinent.

    Merci de votre retour

  2. #2
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 050
    Par défaut
    Bonjour,
    Une autre configuration :
    Pour ma part, j'ai toujours utilisé SQL SERVER avec l'authentification windows (les utilisateurs de l'appli doivent figurer dans des groupes windows selon leur profil ...)
    j'installe la source ODBC sur chaque poste client
    J'attache une seule fois les tables Sql Server via ce DSN.
    et roule la galère (en clair , tout marche)

    CDLT

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    Quand tu lies tes table sql serveur dans Access il faut cocher la case mémorisé mot de passe.

    Tu es quitte à recommencer.

    j'installe la source ODBC sur chaque poste client
    J'attache une seule fois les tables Sql Server via ce DSN.
    Il faut créer un DSN fichier sur un serveur partager et lier ses table à Access en utilisant ce DSN fichier.

    Ainsi pas besoin de configurer ODBC sur toutes les machines. Ne pas oublier de cocher la case mémoriser mot de passe.

  4. #4
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 050
    Par défaut
    ... ainsi pas besoin de configurer ODBC sur toutes les machines...
    Voila qui est un bon conseil . Je le testerai à la prochaine occase.

    CDLT

  5. #5
    Membre averti
    Homme Profil pro
    A mon compte
    Inscrit en
    Décembre 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : A mon compte

    Informations forums :
    Inscription : Décembre 2015
    Messages : 53
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    Bonsoir,
    Quand tu lies tes table sql serveur dans Access il faut cocher la case mémorisé mot de passe.

    Tu es quitte à recommencer.



    Il faut créer un DSN fichier sur un serveur partager et lier ses table à Access en utilisant ce DSN fichier.

    Ainsi pas besoin de configurer ODBC sur toutes les machines. Ne pas oublier de cocher la case mémoriser mot de passe.
    Bonjour
    Je viens de recommencer, ce n'est pas ca qui prend du temps ca va En tous cas j'ai appris une chose, c'est que la mémorisation du mdp est par table, pas pour toute la base, ce qui peut sembler logique pour interdire l'accès à certaines tables. C'est vraiment tout con, merci beaucoup

    Je partage mon petit script trouvé sur internet (site MS) pour créer un DSN automatiquement à l'ouverture de la base (a condition que le pilote soit installé au préalable bien sûr !). cela évite d'aller dans le panneau de config / outils admin... Ca fonctionne à merveille
    D'ailleurs à propos du pilote, je vais bientôt tester de l'intégrer dans le package Wizard pour qu'il s'installe automatiquement.

    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
     
    'Code à mettre dans un module
     
    Function CreateDSNConnection(stServer As String, stDatabase As String, Optional stUsername As String, Optional stPassword As String) As Boolean
        On Error GoTo CreateDSNConnection_Err
     
        Dim stConnect As String
     
        stConnect = "Description=MCM" & vbCr & "SERVER=" & stServer & vbCr & "DATABASE=" & stDatabase & vbCr
     
        DBEngine.RegisterDatabase "MCM", "ODBC Driver 13 for SQL Server", True, stConnect
     
        CreateDSNConnection = True
        Exit Function
     
    CreateDSNConnection_Err:
     
        CreateDSNConnection = False
        MsgBox "Erreur de création DSN : " & Err.Description
     
    End Function
    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
     
    'Code d'appel de la fonction à mettre sur un bouton valider par exemple après avoir entré son ID et MDP compte SQL Server
     
    Dim Cnxn As ADODB.Connection
    Dim strSRV As String
    Dim strBDD As String
    Dim strDRV As String
    Dim strSRV2 As String
     
    strSRV = "tcp:xxxxxx.Database.windows.net,1433"
    strSRV2 = "xxxxxxx.database.windows.net"
    strBDD = "nombdd"
    strDRV = "{ODBC Driver 13 for SQL Server}"
     
    USER = Me.TexteUser 'Variable globale
    MDP = Me.TexteMDP 'Variable globale
     
    On Error GoTo ErrConnexion
     
    Set Cnxn = New ADODB.Connection
    Cnxn.ConnectionString = "Data Source=MCM;User ID=" & USER & ";Password=" & MDP & ";"
        Cnxn.ConnectionTimeout = 30
        Cnxn.Open
        MsgBox "Etat connexion : " & GetState(Cnxn.State)
     
    Cnxn.Close
    Set Cnxn = Nothing
     
     
    DoCmd.Close
    DoCmd.OpenForm "POPUP_OUVERTURE"
     
    Else
    MsgBox "Erreur, veuillez recommencer..."
    End If
    Exit Sub
     
    ErrConnexion:
    MsgBox "Erreur d'identifiant ou mot de passe..."
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    'Fonction état connexion au SQL Server à mettre dans un module
    Public Function GetState(intState As Integer) As String
     
       Select Case intState
          Case adStateClosed
             GetState = "Réussi"
          Case adStateOpen
             GetState = "Echec"
       End Select
     
    End Function

  6. #6
    Expert confirmé

    Homme Profil pro
    consultant développeur
    Inscrit en
    Mai 2005
    Messages
    3 050
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : consultant développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 050
    Par défaut
    ... pas besoin de configurer ODBC sur toutes les machines ...
    dysorthographie,
    Peux-tu détailler ta procédure ? merci

  7. #7
    Membre averti
    Homme Profil pro
    A mon compte
    Inscrit en
    Décembre 2015
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : A mon compte

    Informations forums :
    Inscription : Décembre 2015
    Messages : 53
    Par défaut
    Citation Envoyé par micniv Voir le message
    dysorthographie,
    Peux-tu détailler ta procédure ? merci
    Hum je pense que c'est sur un serveur local sur lequel tu stockes le fichier DSN, et dans une table tu mets le chemin d'accès et par une procédure d'appel ca exécute le DSN

Discussions similaires

  1. programmer connexion à SQL server via VBA
    Par cinfo84 dans le forum Projets ADP
    Réponses: 0
    Dernier message: 15/11/2011, 19h18
  2. [DEBUTANT] Connexion à SQL Server
    Par jesus144 dans le forum Bases de données
    Réponses: 2
    Dernier message: 08/03/2005, 13h38
  3. [C#] Problème de connexion sql server 2000
    Par rabbiwan dans le forum ASP.NET
    Réponses: 8
    Dernier message: 22/12/2004, 17h21
  4. Connexion à SQL Server avec ASP
    Par ayobo dans le forum ASP
    Réponses: 3
    Dernier message: 25/05/2004, 18h06
  5. Connexion SQL Server
    Par Bart51 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/05/2004, 11h49

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