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

Projets ADP Discussion :

connexion à une base Sql Server via Access et ADODB


Sujet :

Projets ADP

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 40
    Points
    40
    Par défaut connexion à une base Sql Server via Access et ADODB
    bonsoir,

    une base SQL Server est installée sur un... serveur, jusque là, pas trop d'originalité. Lors de l'installation, j'ai choisi le mode d'authentification Windows. J'ai créé un projet Access (.adp) dans lequel mon code VBA se connecte à la base en utilisant la bibliothèque ADODB.

    Ma question est la suivante : ma connexion sera-t-elle possible avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monRecordset.ActiveConnection = CurrentProject.Connection
    si la réponse est non ? puis-je (ou dois-je) utiliser une chaîne de connexion pour m'y connecter du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim cnn As New ADODB.Connection
     
    strCon = "Provider=sqloledb;DataSource=MonServeur;Initial Catalog=MaBase;User Id=sa;Password=;"
    cnn.Open strCon

    Merci d'avance et oui, j'ai fait exprès d'appeler ma variable strCon.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    581
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 581
    Points : 633
    Points
    633
    Par défaut
    comprend pas bien pourquoi tu demandes comme ca au lieu de faire les testes.

    Bon cela fait un bon mois que je joue avec access sql server, c'est a dire que via des formulaire j'attaque des tables se trouvant sur sql server.

    Alors via ODBC tu peux effectivement créer ta string de connection comme tu as spécifié.

    Voici mon exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public  strCon  As String = "Provider=SQLOLEDB.1;Database=MyDataBase;Server=MyServer;uid=Login;pwd=PassWord"
    (je n'utilise pas l'authentification windows seulement)
    donc tu fais bien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    cnn.Open strCon
    mRec.open "Requete", cnn, adOpenStatic, adLockOptimistic
     
    if (mRec.RecordCount > 0) .......
    J'avais commencé avec un projet adp aussi, mais finalement j'ai plustot importé toute les tables dans access, et alors je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    cnn = CurrentProject.Connection
    Fix

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    bonjour fix, en effet, le mieux serait de tester mais pour l'instant la base n'est pas installée et je préfère me poser la question avant plutôt que de me retrouver comme un flan devant un problème inattendu.

    ce que je sais c'est que la base SQL Server serait installée en mode d'authentification Windows et c'est çà le coeur de ma question :
    . avec CurrentProject.Connection, j'ai cru comprendre que je me connecte à la base avec les droits de l'utilisateur en cours,
    . par contre, dans le code 2, je me connecte à la base avec un user id et un password différent, mais est-ce possible alors que je suis en mode d'authentification Windows ?

    N'hésitez pas à me renvoyer à de la doc : livre ou lien html ; merci pour vos réponses.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    581
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 581
    Points : 633
    Points
    633
    Par défaut
    oui oui dans la connection string tu as moyen d'ecrire que tu te connectes via l'authentification windows, avec un truc du style Authenticated = true a la place de userid et password
    Cherche sur après ca

    Fix

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    en effet fix !

    j'ai trouvé entre autre sur le site http://www.codeproject.com/database/...ionstrings.asp ou sur http://msdn.microsoft.com/library/de...prg01_0ahx.asp l'explication suivante :

    you can use the parameter Trusted_Connection that indicates that you are using the Microsoft Windows NT Authentication Mode to authorize user access to the SQL Server database
    ce qui se traduirait dans le code VBA par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strConnection = "Server=MyServer;Database=northwind;Trusted_Connection=yes"
    mais on peut aussi faire çà en utilisant une autre méthode :

    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
    Dim con As New ADODB.Connection
    Dim ServerName As String, DatabaseName As String
     
    ' Put text box values into connection variables.
    ServerName = txtServerName.Text
    DatabaseName = txtDatabaseName.Text
     
    ' Specify the OLE DB provider.
    con.Provider = "sqloledb"
     
    ' Set SQLOLEDB connection properties.
    con.Properties("Data Source").Value = ServerName
    con.Properties("Initial Catalog").Value = DatabaseName
     
    ' Windows NT authentication.
    con.Properties("Integrated Security").Value = "SSPI"
     
    ' Open the database.
    con.Open
    je vais tester çà et je tiens au courant ceux que çà intéresse...

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2003
    Messages : 55
    Points : 40
    Points
    40
    Par défaut
    Bon bin çà marche... je flag à résolu.

    merci fix.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/06/2008, 12h43
  2. Problème de connexion à une base SQL Server 2005
    Par tatayecorp dans le forum ASP
    Réponses: 2
    Dernier message: 19/04/2008, 00h28
  3. connexion à une base sql server 2005 distante
    Par jeandu69 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/04/2008, 12h46
  4. connexion à une base sql server via access
    Par gunico dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 03/03/2006, 11h28

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