[R] Accès a une base de données Access (.mdb)

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Utilisateur 3309 supprimé
Status : Hors ligne

[R] Accès a une base de données Access (.mdb)

#1

Message par Utilisateur 3309 supprimé »

Bonjour,
je suis sous Seven 64bit avec autoit V3 FR.
J'essais d'ouvrir une base de donnée access et d'en retirer une info. j'ai trouvé un petit tutorial ici:
http://vista.tutorialref.com/autoit/aut ... abase.html

j'essais donc de le mettre en oeuvre mais j'ai un message d'erreur:
Image

Voici le code:

Code : Tout sélectionner

$dbname = "C:\test.mdb"
$tblname = "articles"
$query = "SELECT * FROM " & $tblname & " WHERE code ='J0250'"

Local $code
$adoCon = ObjCreate("ADODB.Connection")
$adoCon.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & $dbname) ;Use this line if using MS Access 2003 and lower
;$adoCon.Open ("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & $dbname) ;Use this line if using MS Access 2007 and using the .accdb file extension
$adoRs = ObjCreate ("ADODB.Recordset")
$adoRs.CursorType = 1
$adoRs.LockType = 3
$adoRs.Open ($query, $adoCon)
$code = $adoRs.Fields("code").value    ;Retrieve value by field name
;$title = $adoRs.Fields(2).value         ;Retrieve value by column number
$adoCon.Close
MsgBox(0,"testing",$code)
 
Quelqu'un pourrait-il m'aider ?
je joins la base de données test a mettre dans c:\
Fichiers joints
test.zip
(2.39 Kio) Téléchargé 138 fois
Modifié en dernier par Utilisateur 3309 supprimé le dim. 13 mai 2012 19:24, modifié 4 fois.
Utilisateur 3309 supprimé
Status : Hors ligne

Re: [..] acces a une base de données access (.mdb)

#2

Message par Utilisateur 3309 supprimé »

je viens de trouver ce post: http://autoitscript.fr/forum/viewtopic. ... ess#p16814
je suis actuellement en train de le lire, je vais tester le fonctionnement de cette méthode, a moins que quelqu'un ne trouve la cause de mon problème précédemment indiqué...

Edit:
je suis completement perdu...rien ne fonctionne, quoi que je fasse, j'ai beau utiliser tous les exemples qui existent, rien ne marche, j'ai toujours exactement le même type d'erreur, j'ai l'impression que c'est mon seven 64 qui pose probleme...

Quel serait le code qui me permettrait d'ouvrir d'acceder a ma base qui se trouve dans c:\test.mdb et de me sortir une valeur dans un msgbox par exemple ?

Merci de votre aide!

Edit2:
J'ai testé le code de mon 1er post, il fonctionne parfaitement dans une machine virtuelle qui fait tourner WIN 2003 (32bit)...cela confirme mes doutes concernant mon seven 64bit.

Cette ligne ne doit pas être correcte pour mon envirronement ?

Code : Tout sélectionner

$adoCon.Open("Driver={Microsoft Access Driver (*.mdb)}; DBQ=" & $dbname)
j'ai testé avec ca:

Code : Tout sélectionner

$adoCon.Open("Driver={Microsoft Access Driver (*.mdb, *.accdb)}; DBQ=" & $dbname)
idem...
Utilisateur 3309 supprimé
Status : Hors ligne

Re: [..] acces a une base de données access (.mdb)

#3

Message par Utilisateur 3309 supprimé »

Bon j'ai trouvé d'ou vient le probleme, les fichiers .au3 sur mon win7 64 s'executent avec : AutoIt3_x64.exe
avec AutoIt3.exe (version 32bit j'imagine) le script fonctionne enfin :D

J'en déduis qu'un patacaisse se produit lors de l'utilisation de autoit 64bit et des drivers ODBC 32bits...

Si comme moi vous avez un Windows 64bit avec un pack office 32bit, vous aurez très certainement le même probleme.

Donc dans ce cas il faut faire bouton droit puis run script(x86)
Image
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [R] acces a une base de données access (.mdb)  

#4

Message par jchd »

Je prends en cours de route (après la bagerre, plutôt !).

Normal, un exécutable N-bits demande des DLL N-bits, avec N = 32 XOR N = 64.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Utilisateur 3309 supprimé
Status : Hors ligne

Re: [R] acces a une base de données access (.mdb)

#5

Message par Utilisateur 3309 supprimé »

tout a fait, mais encore fallait il savoir ce qu'il se passait en coulisse :wink:
Répondre