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

Requêtes et SQL. Discussion :

Problème : connexion vers une base SQL par ODBC [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre habitué Avatar de Cabos
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 108
    Points : 156
    Points
    156
    Par défaut Problème : connexion vers une base SQL par ODBC
    Bonjour,

    Je suis sur un problème épineux pour lequel je n'ai pas trouvé de réponse sur les forums existants.

    Il s'agit de connecter une base SQL à une base Access par ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DoCmd.TransferDatabase acLink, _
    "ODBC", _
    "ODBC;DSN=Connexion_TOTO;UID=Toto;PWD=totopwd;DATABASE=totodata", _
    acTable, "dbo_toto", "dbo_toto"
    Cette manipulation en manuel (en passant par l'importation sous ACCESS) fonctionne parfaitement, mais ici, je reçois systématiquement le message "ODBC -- Echec de la connexion à 'Connexion_TOTO' ".

    Quelqu'un aurait il une info / une idée / un début de piste pour m'aider à avancer sur ce problème ?

    Je tente bien de contourner le problème en passant par une chaine de connexion, mais en toute franchise, cela me rend la tâche beaucoup plus compliquée.

    Merci d'avance de votre aide.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 353
    Points : 23 819
    Points
    23 819
    Par défaut
    As-tu essyé de linker une table Access et de faire afficher la chaîne de connexion utilisée ?

    Pour voir la chaîne dans la fenêtre d'exécution immédiate ([Ctrl][G])

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    debug.print currentdb.tabledefs("NomTaTableLinkee").connect
    A+

  3. #3
    Membre habitué Avatar de Cabos
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 108
    Points : 156
    Points
    156
    Par défaut
    Merci de ta réponse, et désolé de ne pas avoir réagi plus tôt (le travail, le travail....).

    Je retiens ton excellente suggestion, d'autant que je n'utilisais jamais cette fenêtre d'exécution immédiate, et je sens que cela va changer !...

    Après exécution, il n'affiche pas les mêmes paramètres :

    ODBC;Description=Connexion à la base de données SQL Toto;DRIVER=SQL Server;SERVER=xxx.xxx.xxx.xxx\sqltoto;APP=Microsoft Data Access Components;WSID=MonPoste;DATABASE=totodata;LANGUAGE=Français;Network=DBMSSOCN

    Donc, si je suis bien, il ne reprend pas le DSN, affiche directement le chemin et ne remet pas les critères de connexion UID / PWD.

    Bon, qu'est-ce qui me manque dans ma ligne ? Le DRIVER ? Quand je lui mets "ODBC Databases" dans le type, il me répond "Pilote non trouvé". Je vais creuser dans cette direction.

    Franchement, ça m'agace de trop de ne pas arriver à utiliser la liaison ODBC. Ce serait pourtant bien plus simple par la suite...

    Merci encore de ton aide marot_r, et si tu as d'autres excellentes idées comme celles là, n'hésites surtout pas ! Je suis plus que preneur !

    Très bonne journée.

  4. #4
    Membre expert
    Avatar de alassanediakite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2006
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Mali

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2006
    Messages : 1 599
    Points : 3 590
    Points
    3 590
    Billets dans le blog
    8
    Par défaut
    Salut
    1. le concept ODBC est commun
    2. le contenu de la liaison est différent selon le SGBD
    3. Aussi je me dis qu'il est plus facile de résoudre un problème que de corriger une solution d'un problème qu'on ne connait pas. Alors que compte tu faire au juste?

  5. #5
    Membre habitué Avatar de Cabos
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 108
    Points : 156
    Points
    156
    Par défaut
    Bonjour alassanediakite,

    Tout simplement, je veux créer un lien vers une base SQL en link à l'ouverture d'un processus, opération demandant un login + mdp que je souhaite être transparent pour l'utilisateur final, et le fermer à la fin.

    Je sais que je peux passer par une chaine de connexion, mais c'est beaucoup moins simple par la simple : la table linkée intervient dans de nombreuses requêtes, et si je passe par cette chaine de connexion, je ne peux pas me référer directement aux champs de cette table dans mes requêtes, il faut que je passe par un recordset et que je ré-écrive mes requêtes en fonction de cela.

    Bref, passer directement par TransferDataBase en me référant à un objet ODBC me plaisait bien comme solution !

    Sauf que ça ne veut pas !....

  6. #6
    Membre habitué Avatar de Cabos
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Novembre 2010
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Novembre 2010
    Messages : 108
    Points : 156
    Points
    156
    Par défaut
    Ok, j'ai trouvé.

    Pour ceux qui seraient confrontés au même problème :

    Pour lier une table d'une base SQL vers ACCESS en fournissant automatiquement le mot de passe et le login d'accès à la base SQL :

    DoCmd.TransferDatabase acLink, _
    "ODBC", _
    "ODBC;DRIVER=SQL Server;SERVER=Chemin d'accès à la base SQL(ex : xxx.xxx.xxx.xxx\sqltoto);UID=Nom de l'utilisateur ayant accès à la base;PWD=son mot de passe;DATABASE=nom de la base SQL", _
    acTable, "Nom de la table SQL", "Nom qu'elle doit prendre sous ACCESS"

    Il m'a été impossible de faire fonctionner cela en mentionnant directement le DSN.

    Merci à tous ceux qui m'ont apporté leur aide.

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

Discussions similaires

  1. [XL-2007] Creer une connexion vers une base SQL
    Par bigfoot75 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/03/2010, 19h31
  2. [VB6]Problème connexion avec une base ACCESS
    Par mcay dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 15/05/2006, 17h47
  3. [VB.NET][MySQL]ID insertion dans une base MySQL par ODBC
    Par leSeb dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/03/2006, 10h58
  4. Connexion a une base SQL dont le nom " Local (Windows N
    Par Mahmoud RAMMAL dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/02/2006, 09h45
  5. Migrer un fichier excel vers une base sql serveur
    Par vdavid1982 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 12/07/2005, 16h26

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