|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 10 ![]() |
bonjour,
je travaille actuellement avec une base access 2007 dont le tables sont liées directement par le menu access de liaison ODBC MySQL et le connector ODBC 5.1. Je desire installer cette base sur des postes ayant access et le pilote ODBC mYSQL 5.1 installé mais dont la liaison se ferait automatiquement sans configurer le pilote MySQL(adresse IP databade identifiant mot de passe) et pouvoir modifier les données de ces tables je me suis inspiré du tutoriel de connection ODBC de votre site mais je me retrouve face à plusieurs problèmes : quand je lance le module, le connecteur ODBC me redemande l'adresse IP du serveur et le nom de la Database alors que je l'ai rentré dans le module. Si je refuse de remplir ces données, la connexion est impossible si je rentre à nouveau ces données, la liaison avec la table se fait mais je ne peux pas modifier les données alors que je peux le faire avec ma liaison actuelle si quelqu un a une réponse je joins le code Code :
|
||
|
|
00
|
|
|
#2 |
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonsoir,
J'ai testé le code que tu as posté dans une nouvelle base de données, et chez moi (Windows XP / Access 2003 / 'MySQL ODBC 5.1 Driver' 5.01.06.00) il fonctionne. DSN créé table liée créée index clé primaire créé (j'ai choisi une table MySql sans clé pour mon test) J'ai pu reproduire une situation où le pilote MySQL affiche sa boîte de dialogue, au moment de créer la table liée. C'est quand la source de données (DSN) existe deux fois (DSN utilisateur et DSN système avec le même nom), et que le DSN utilisateur est incomplet (enregistré sans nom ou adresse ip de serveur). A+ |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 10 ![]() |
bonjour et merci de ta réponse.
Je suis revenu en arrière dans ma démarche et ne cherche pour l'instant qu'a établir une source de données utilisateur grace à ton tutorial avec DAO ou API ODBC. Mes tables étant déjà liées dans la version de base, les autres utilisateurs de ma base frontale n'ayant pas à faire la liaison. J'ai supprimé toutes les sources de données indésirables, je travaille avec windows seven 64 et le pilote ODBC MySQL 5.18 . J'ai recopié ton code pour les constantes et la fonction apiRegDB dans un module et créé deux boutons dans un formulaire avec la première méthode (DAO) et la 2eme (ApiODBC)en ne changeant que le nom du connecteur et les données de la source. A chaque fois quand ça ne fonctionne pas correctement je supprime la source de données.Le souci est toujours le même : la source de donnée système ou utilisateur est créé et visible dans les sources de données machine, mais lorsque je veux m'en servir le connecteur ODBC n'a retenu que le DSN, le reste des infos n'étant pas stockées. J'ai même testé sur un autre ordi et j'ai aussi retesté avec la versoin MySQL 3.51 en desintallant la 5.1. Je n'arrive pas à comprendre ou se perdent les infos de strAttr merci encore |
|
|
00
|
|
|
#4 |
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonjour,
Je pense que la source du problème est là. Voir la note de cette page et http://support.microsoft.com/kb/942976 D'après ce que j'ai pu comprendre ... c:\windows\sysWOW64\odbcad32.exe gère les pilotes 32 bit et utilise les clés de registre HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI HKEY_CURRENT_USER\SOFTWARE\Wow6432Node\ODBC\ODBC.INI c:\windows\system32\odbcad32.exe gère les pilotes 64 bit et utilise la clé de registre HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI HKEY_CURRENT_USER\SOFTWARE\ODBC\ODBC.INI Donc a mon avis, mon code crée le DSN à un certain endroit de la base de registre, et Access le cherche à un autre endroit. Mais ce qui m'étonne c'est qu'il trouve le DSN et le pilote. Ou bien SQLConfigDataSource n'enregistre pas tous les paramètres du DSN. N'ayant pas à ma disposition de machine avec un OS 64 bit, je ne peux pas faire de recherches. Peux-tu essayer ceci ?
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 10 ![]() |
bonsoir,
je viens de faire toute ta procédure et j'y réponds en reprenant ta numérotation pour simplifier 1-fait 2-fait plus de DSN ESSAI MySQL 3a-oui mais message d'erreur si je clique sur configurer (les routines d installation du pilote ODBC MySQL 5.1 sont introuvables la source de donnée présente une incompatibilité d'architecture entre le pilote et l'application) 3b-oui je peux accéder à la page du connecteur mais seul le DSN est enregistré 3c-oui même remarque 4a-ODBC dossier défaut et vista vides pas d ESSAI MySQL ODBC data source defaut vide 4b- Non dossier vide par défaut 5a-fait 5b- pas possible pas de pilote MySQL proposé 6- oui il est bien dans les deux dossiers version access 2010 32 bits (installation complète par défaut) je te rappelle aussi que j'ai testé le code sous access 2007 et seven 32bits sans plus de succès, si ça peut aider merci |
|
|
10
|
|
|
#6 | |||
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonsoir,
J'ai résumé les tests que tu as faits dans un fichier excel. Si tu as bien créé des DSN systèmes, je suis surpris que les deux versions de l'administrateur de sources de données ODBC voient le DSN "ESSAI MyQL". C'est en contradiction avec ce qui est écrit ici. Idem, je ne comprends pas que tu ne voie le DSN "ESSAI MyQL" nulle part dans les deux clés de la base de registre. Ce qui se dégage de tout ça, c'est que
Citation:
![]() Test 1. Dans les déclarations de l'api ODBC remplacer par Code :
... Lib "c:\windows\sysWOW64\odbccp32.dll" ... Test 2. Créer un DSN utilisateur avec Access/DAO. Dernière possibilité Elle consiste à enregistrer la source de données ODBC en écrivant dans la base de registre. Pour cela il faut créer une source manuellement avec c:\windows\sysWOW64\odbcad32.exe et voir ce que l'administrateur de sources de données ODBC a créé dans HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\ESSAI MySQL et dans HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\ODBC Data Sources Exemple (format éditeur de registre windows 5.0) Code :
Si les tests 1 et 2 son infructueux, crée une source à la main et exporte la clé HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC dans fichier .reg. Renomme le fichier en .txt. Ouvre le et supprime les sous-clés sans rapport avec MySQL (comme mon exemple du dessus). Il doit te rester les quatre clés [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\ESSAI MySQL] [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBC.INI\ODBC Data Sources] (ne conserver que la ligne pour ESSAI MySQL) [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\MySQL ODBC 5.1 Driver] [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI\ODBC Drivers] (ne conserver que la ligne pour le pilote MySQL) Poste ce qui reste et j'essaierai de créer le code VBA pour recréer ces entrées dans la base de registre. A+ |
|||
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 10 ![]() |
bonsoir,
j ai un peu peur de manipuler le registre, d'autant plus que : -mon but est de pouvoir exporter ma base access quelque soit le systeme d'exploitation et la version acces à partir de 2007 -j'ai fait une capture d'écran et à priori mon lien Test MySQL s'est installé à un autre endroit que celui que tu m'a indiqué : peut-être une piste ?je joins la capture d'écran de mon regedit merci de ton aide |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : octobre 2007 Messages : 10 ![]() |
avec la capture d'écran c(est mieux !
|
|
|
00
|
|
|
#9 | |
![]() ![]() Maintenance données produits Inscription : décembre 2005 Messages : 3 939 ![]() |
Bonsoir,
Citation:
Ce que je t'ai montré correspond à la création d'un DSN Système, créé à la main avec l'administrateur de sources de données ODBC. La copie d'écran correspond à un DSN utilisateur. Je n'ai jamais utilisé la clé HKEY_USERS. On utilise plutôt la clé HKEY_CURRENT_USER qui pointe vers l'entrée de HKEY_USERS (HKEY_USERS\S-x-xx-x-etc...) correspondant à l'utilisateur de la session Windows en cours. Tu devrais retrouver la même chose que ta copie d'écran dans HKEY_CURRENT_USER\Software\ODBC\ODBC.INI. Je suppose que cette source de données a été créée avec la méthode DAO (qui ne sait créer que des DSN utilisateurs). Si cette méthode fonctionne, je pense qu'il faut l'utiliser. A+ |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com