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 :

Pas de pilote ODBC 32 bits pour Access 2007/2010


Sujet :

Requêtes et SQL.

  1. #1
    Membre du Club Avatar de Baud10
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Points : 47
    Points
    47
    Par défaut Pas de pilote ODBC 32 bits pour Access 2007/2010
    Bonjour

    Je souhaite développer une application .Net qui se connecte à un fichier Access 2007/2010 (fichier .accdb).
    Mon OS est Windows 7 64 bits.
    Mon Office est Microsoft Office 2010 64 bits.
    Mon EDI est Microsoft Visual Studio 2010 64 bits.

    Or, j'arrive depuis Visual Studio à me connecter à un fichier Access 2003 (en utilisant odbc32.exe (qui affiche les drivers x86) et non pas les outils d'administration (qui affiche les drivers x64).
    Dans la fenêtre x64, j'ai les drivers Access 2007.
    Dans la fenêtre x86, j'ai les drivers Access 2003.
    Dans Visual Studio, je vois les DSN x64 et x86. Mais si je sélectionne un DSN x64, il m'indique le message suivant :
    "Error IM014 [Microsoft][ODBC Driver Manager] The specified DSN contains an architecture mismatch between the Driver and Application"

    [edit]Impossible d'enregistrer le fichier Access 2007 en Access 2003[/edit]

    Je ne sais pas quoi faire.

    merci pour votre aide.

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 227
    Points : 28 228
    Points
    28 228
    Par défaut
    Soit tu utilise une base Access 2007 et tu utilisera alors les drivers d'Access 2007, soit tu utilise une base Access 2003 et tu utilisera les drivers d'Access 2003, et ce même si tu passe initialement par une connexion type Access 2007, c'est bien le driver 2003 qui sera utilisé au final.

    Pour acceder à une base Access2003 est antérieur il faut utiliser le moteur Microsoft Jet 4.0. Celui-ci n'existe pas en version 64bits, uniquement en 32bits.
    Donc pour acceder à une base Access2003, quelques soit la méthode ou la connexion utilisée, il faut obligatoirement que ton application soit exécutée en 32bits. Il faut donc, à la compilation forcer le mode 32bits (x86) pour que l'accès à une base Access 2003 et antérieur puisse se réaliser (appel du pilote MSJet4.0 en 32bits).

  3. #3
    Membre du Club Avatar de Baud10
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Points : 47
    Points
    47
    Par défaut
    Je veux exactement le contraire.
    Je veux accéder à une base de donnée Access 2007, et ce avec des drivers 64 bits. Or je n'ai que les drivers suivants :
    - en 64 bits : Access 2003/2007 ("Microsoft Access Driver (*.mdc *.accdb)" : ACEODBC.DLL) et 5 autres drivers
    - en 32 bits : Access 2003 ("Driver do Microsoft Access (*.mdb)" et "Microsoft Access Driver (*.mdb)" : ODBCJET32.DLL) et une 20aines d'autres drivers, mais pas Access 2007...

    [edit]Dans l'interface d'édition des DSN x86, si j'ajoute une connexion via le driver x86 qui ne supporte que les .mdb, je ne peux pas choisir un fichier accdb. Si je force quand même la création du DSN, à la connexion dans VS j'obtiens un message d'erreur (non reconnu ou corrompu).
    Si je fais la même chose avec un MDB (Access 2003) ça fonctionne.
    Dans l'interface d'édition des DSN x64, je peux ajouter une connexion avec le bon driver Access 2007. Mais lorsque je teste la connexion, il me dit que l'architecture n'est pas compatible.
    Ma conclusion : il me faut le driver x86 d'Access 2007.
    [/edit]

    Pourtant je veux développer une application x86 !

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 227
    Points : 28 228
    Points
    28 228
    Par défaut
    Ok, vu comme ça...

    Attention, pour créer une source odbc 64bits, il faut lancer odbcad32.exe situé dans Windows/System32, mais pour créer une source odbc 32 bits, il faut lancer odbcad32.exe situé dans Windows/SysWOW64

  5. #5
    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 768
    Points
    7 768
    Par défaut
    Bonjour,

    Les pilotes Access 2010 sont disponibles ici en 32 et 64 bits.

    A+

  6. #6
    Membre du Club Avatar de Baud10
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Points : 47
    Points
    47
    Par défaut
    Merci. J'avais déjà trouvé ce lien, j'ai téléchargé la version x64 que j'ai installé.

    J'ai effectué cela avant même d'essayer de créer le DSN. J'ignore donc quel était l'état de mes pilotes avant l'installation.

    Ce que je sais, c'est qu'après l'installation du patch x64, j'ai bien le driver Access 2010 pour x64, mais je ne l'ai pas pour x86 !

    Impossible d'installer le patch x86, puisqu'il faudrait que je désinstalle Office x64 pour un Office x86...

    Peut-être que je mélange mes deux 32 et 64 bits.

    Car, quand je lance C:\Windows\SysWOW64\odbcad32.exe, qui est censé être x64, dans l'onglet Drivers je vois une 20aines de drivers, avec un nom de DLL du type ODBCJT32.DLL.

    Quand je lance C:\Windows\system32\odbcad32.exe, qui est censé être x86, dans l'onglet Drivers je vois 6 drivers avec une DLL du type ACEODBC.DLL.

    A noter que l'onglet "User DSN" est commun aux deux versions x64 et x86.
    A noter que l'onglet "System DSN" n'a pas les mêmes DSN en x64 et x86.

    En tout cas, seul la console C:\Windows\system32\odbcad32.exe (ACEODBC.DLL, 6 drivers) me permet de connecter un fichier Access 2007+.

    Car la console C:\Windows\SysWOW64\odbcad32.exe (ODBCJT32.DLL) malgré ses 23 drivers, ne sait pas lire du Access 2007+.

    Dans Visual Studio, je vois :
    - User DSN (x86 ou x64, ils sont communs)
    - System DSN de C:\Windows\SysWOW64\odbcad32.exe

    Dans Visual Studio, si je me connecte à :
    - User DSN de C:\Windows\SysWOW64\odbcad32.exe, ça fonctionne
    - User DSN de C:\Windows\system32\odbcad32.exe (erreur architecture)
    - System DSN de C:\Windows\SysWOW64\odbcad32.exe, ça fonctionne

    Mais je le répète, avec C:\Windows\SysWOW64\odbcad32.exe ne j'ai que Access 2000/2003, pas Access 2007/2010

  7. #7
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 227
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 227
    Points : 28 228
    Points
    28 228
    Par défaut
    Tu te trompe.

    WoW64 (Windows 32-bit On Windows 64-bit)

    C:\Windows\system32\odbcad32.exe est comme son nom ne l'indique pas la version x64

    C:\Windows\SysWOW64\odbcad32.exe est la version x86 (32bits donc).
    SysWOW64 est le dossier de mappage des binaires 32bits sur un système 64bits : WoW64 veut dire Windows 32-bit On Windows 64-bit)

    Pour Access2007 c'est bien le drivers ACEODBC.DLL qu'il faut utiliser. ODBCJT32.DLL ne saura pas accéder à une base Access 2007

  8. #8
    Membre du Club Avatar de Baud10
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations forums :
    Inscription : Mai 2006
    Messages : 66
    Points : 47
    Points
    47
    Par défaut
    Donc je résume :

    system32 (x64) possède peu de driver mais possède le driver Access 2007.
    wow64 (x84) possède beaucoup de driver mais ne possède pas le driver Access 2003.

    Donc comme je n'ai que le driver x64 pour Access 2007, je dois l'utiliser pour la connexion dans Visual Studio.
    Or, il me dit que mon architecture ne correspond pas.

    Alors que quand j'utilise un driver x86 avec Visual Studio, il me dit que c'est bon. Mais en x86, je n'ai pas le driver pour Access 2007.

    Donc je tourne en rond depuis le début...

  9. #9
    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 768
    Points
    7 768
    Par défaut
    Bonjour,

    Access 2010 64 bits a du installer uniquement les pilotes 64 bits.

    Dans le lien que je t'avais fourni, il y a les pilotes 32 bits.
    C'est le fichier AccessDatabaseEngine.exe

    A+

Discussions similaires

  1. Générateur de MsgBox pour Access 2007
    Par loufab dans le forum Contribuez
    Réponses: 1
    Dernier message: 19/03/2013, 13h07
  2. Client Oracle sur windows7 lien ODBC pour Access 2007
    Par yassine.benjelloun dans le forum Oracle
    Réponses: 2
    Dernier message: 07/12/2011, 17h02
  3. La préversion du pilote ODBC SQL Server pour Linux disponible
    Par Hinault Romaric dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 01/12/2011, 19h09
  4. Runtime pour Access 2007
    Par khayyam90 dans le forum Contribuez
    Réponses: 0
    Dernier message: 29/12/2010, 21h59
  5. ruban pour access 2007 pour chaque groupe de travail
    Par popofpopof dans le forum Access
    Réponses: 3
    Dernier message: 02/09/2007, 08h55

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