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 :

Problème DSN lors d'importation tables ODBC [AC-2003]


Sujet :

VBA Access

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Problème DSN lors d'importation tables ODBC
    Bonjour à tous,

    J'ai suivi un peu toutes les indications que j'ai pu trouver sur le net et étant novice j'ai réussi (notamment grâce à vous) à créer une connexion en vb sur access.

    Mon code me connecte à un serveur distant en utilisant un dsn et rapatrie les tables sur ma machine. Tout fonctionne à merveille sauf un petit détail.

    Lorsque j'ouvre access et que je lance ma macro, je reçois :

    "ODBC -- Connection to 'x' failed.

    J'enlève de mon code le fichier *.dsn et hop je recois une fenêtre de login remplie en ordre, je valide et mes tables s'importent. Là, je remet le dsn et relance mon code et pouf ça marche sans erreur, je ferme access, je relance et de nouveau je dois faire à nouveau le tout manuellement pour qu'après cela marche automatiquement.

    J'ai contrôlé le fichier *.dsn tout est indiqué correctement. J'avoue être perdu et ne sait plus ou regarder.

    Un grand merci d'avance pour votre aide ou conseils.



    Bonne journée.

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour et bienvenue sur le forum.

    Le problème peut se situer au niveau de la chaîne de connexion.

    Si tu utilises un DSN fichier au lieu d'un DSN utilisateur ou système (qui sont, eux, enregistrés dans la base de registre)
    il faut utiliser le mot-clé FILEDSN en lieu et place de DSN. Exemple

    Si tu fais référence au fichier DSN avec FILEDSN=xxxx.dsn
    il faut que le fichier xxxx.dsn soit dans le dossier approprié.
    Voir dans l' Administrateur de source de données ODBC, onglet "Source de données fichier"

    As-tu créé ton fichier DSN à la main, ou à l'aide d'un assistant ?

    A quoi ressemble ta chaîne de connexion ?

    A+

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Bonjour et merci pour ta réponse.

    J'ai testé avec les 2 méthodes DSN et FILEDSN mais cela génère toujours le même problème.

    Voici le fragment de 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
     
     
    Dim dsn As String
    Dim uid As String
    Dim srvr As String
    Dim pwd As String
    Dim DB As String
    Dim odbcConnectStr As String
     
     
    dsn = "C:\Program Files\Common Files\ODBC\Data Sources\sat2000.dsn"
    uid = "x"
    srvr = "y"
    pwd = "z"
    DB = "a"
     
    odbcConnectStr = "ODBC;Filedsn=" & dsn & ";UID=" & uid & ";SRVR=" & srvr & ";DB=" & DB & ";PWD=" & pwd & ""
     
    DoCmd.TransferDatabase acImport, "ODBC", odbcConnectStr, acTable, "dbo.dAgentBySkillsetStat", "dbo_dAgentBySkillsetStat", False
    Encore merci pour ton aide et excellente journée.

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    ça fonctionne chez moi.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim dsn As String
    Dim uid As String
    Dim pwd As String
    Dim DB As String
    Dim odbcConnectStr As String
     
    dsn = "D:\Program Files\Fichiers communs\ODBC\Data Sources\SqlServer.dsn"
    uid = "NomUtilisateur"
    pwd = "MotDePasse"
    DB = "BDD"
     
    odbcConnectStr = "ODBC;Filedsn=" & dsn & ";UID=" & uid & ";Database=" & DB & ";PWD={" & pwd & "}"
     
    DoCmd.TransferDatabase acImport, "ODBC", odbcConnectStr, acTable, "dbo.mm_chg_req", "dbo_mm_chg_req", False
    Code SqlServer.dsn : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    [ODBC]
    DRIVER=SQL Server
    Network=DBMSSOCN
    SERVER=.\SQLEXPRESS
    DATABASE=BDD
    WSID=NOMORDI
    APP=Système d'exploitation Microsoft® Windows®
    Description=SQL Server SQLEXPRESS
    Seule petites différences chez moi :
    Je ne remets pas le nom du serveur car il déjà spécifié dans le fichier DSN.
    J'utilise le mot-clé DATABASE au lieu de DB (mais ça fonctionne aussi avec DB).
    Je mets mon mot de passe entre { et } car il contient un caractère interdit.

    A+

  5. #5
    Candidat au Club
    Inscrit en
    Juin 2010
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Salut,

    Un grand merci pour ton aide, au final il aura fallu que je réinstalle windows et que je recrée les dsn pour que cela passe tout seul....miracle de l'informatique moderne.

    Une toute bonne journée

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

Discussions similaires

  1. Data_type lors d'import par ODBC
    Par bati_taf dans le forum QlikView
    Réponses: 1
    Dernier message: 29/03/2013, 19h27
  2. Réponses: 11
    Dernier message: 29/12/2012, 20h50
  3. Réponses: 4
    Dernier message: 05/04/2011, 08h32
  4. [Problème]Import table Oracle
    Par Isa31 dans le forum Access
    Réponses: 7
    Dernier message: 09/08/2006, 14h46
  5. [VBA-E]Problème de date lors d'importation
    Par illight dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 12/04/2006, 11h38

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