Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Requêtes et SQL.
Requêtes et SQL. Tout ce qui concerne vos questions sur les requêtes et le SQL sous Access se trouve ici.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/06/2011, 18h58   #1
Futur Membre du Club
 
Avatar de Baud10
 
Cédric BEAUDIER
Inscription : mai 2006
Messages : 65
Détails du profil
Informations personnelles :
Nom : Cédric BEAUDIER
Âge : 25
Localisation : France, Côte d'Or (Bourgogne)

Informations forums :
Inscription : mai 2006
Messages : 65
Points : 19
Points : 19
Envoyer un message via MSN à Baud10
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.
__________________
www.beaudier.fr
Baud10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 20h31   #2
Modérateur
 
Avatar de sevyc64
 
Homme Yves
Développeur informatique
Inscription : janvier 2007
Messages : 3 878
Détails du profil
Informations personnelles :
Nom : Homme Yves
Âge : 39
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2007
Messages : 3 878
Points : 7 655
Points : 7 655
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).
__________________
Sevyc64 --- Le partage est notre force

NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS
sevyc64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 21h05   #3
Futur Membre du Club
 
Avatar de Baud10
 
Cédric BEAUDIER
Inscription : mai 2006
Messages : 65
Détails du profil
Informations personnelles :
Nom : Cédric BEAUDIER
Âge : 25
Localisation : France, Côte d'Or (Bourgogne)

Informations forums :
Inscription : mai 2006
Messages : 65
Points : 19
Points : 19
Envoyer un message via MSN à Baud10
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 !
__________________
www.beaudier.fr
Baud10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2011, 21h19   #4
Modérateur
 
Avatar de sevyc64
 
Homme Yves
Développeur informatique
Inscription : janvier 2007
Messages : 3 878
Détails du profil
Informations personnelles :
Nom : Homme Yves
Âge : 39
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2007
Messages : 3 878
Points : 7 655
Points : 7 655
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
__________________
Sevyc64 --- Le partage est notre force

NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS
sevyc64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 12h17   #5
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
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 : 3 939
Points : 6 278
Points : 6 278
Bonjour,

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

A+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 12h34   #6
Futur Membre du Club
 
Avatar de Baud10
 
Cédric BEAUDIER
Inscription : mai 2006
Messages : 65
Détails du profil
Informations personnelles :
Nom : Cédric BEAUDIER
Âge : 25
Localisation : France, Côte d'Or (Bourgogne)

Informations forums :
Inscription : mai 2006
Messages : 65
Points : 19
Points : 19
Envoyer un message via MSN à Baud10
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
__________________
www.beaudier.fr
Baud10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 13h57   #7
Modérateur
 
Avatar de sevyc64
 
Homme Yves
Développeur informatique
Inscription : janvier 2007
Messages : 3 878
Détails du profil
Informations personnelles :
Nom : Homme Yves
Âge : 39
Localisation : France, Pyrénées Atlantiques (Aquitaine)

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : janvier 2007
Messages : 3 878
Points : 7 655
Points : 7 655
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
__________________
Sevyc64 --- Le partage est notre force

NON AU LANGAGE SMS & FAUTES VOLONTAIRES SUR LES FORUMS
sevyc64 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2011, 19h55   #8
Futur Membre du Club
 
Avatar de Baud10
 
Cédric BEAUDIER
Inscription : mai 2006
Messages : 65
Détails du profil
Informations personnelles :
Nom : Cédric BEAUDIER
Âge : 25
Localisation : France, Côte d'Or (Bourgogne)

Informations forums :
Inscription : mai 2006
Messages : 65
Points : 19
Points : 19
Envoyer un message via MSN à Baud10
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...
__________________
www.beaudier.fr
Baud10 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/06/2011, 18h25   #9
Rédacteur
 
Avatar de LedZeppII
 
Homme
Maintenance données produits
Inscription : décembre 2005
Messages : 3 939
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 : 3 939
Points : 6 278
Points : 6 278
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+
LedZeppII est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h53.


 
 
 
 
Partenaires

Hébergement Web