[R]autoit et interrogation base de donnée access 2003

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
wasabi
Niveau 1
Niveau 1
Messages : 14
Enregistré le : mar. 17 mars 2009 10:50
Status : Hors ligne

[R]autoit et interrogation base de donnée access 2003

#1

Message par wasabi »

Bonjour. je vous explique:

Je souhaité créer un logiciel qui me permette de me connecter automatique a une applis du travail.
Utilisateur de plusieur profil oblige j'ai donc créer una base de donnée sur Access 2003 avec tout mes panneau de configue et tout. Maintenant je souhaite automatiser cette tache par le biais d'autoit, mais le souci c que je n'arrive pas a récupérer les info stocker dans ma base de donnée.

Comment faire s'il vous plait.

Voila se que j'ai actuellement:
► Afficher le texte
Modifié en dernier par wasabi le mer. 15 avr. 2009 09:09, modifié 4 fois.
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: autoit et BDD

#2

Message par GaRydelaMer »

Bonjour

J'ai déjà répondu ici même et donnés quelques fonctions que j'utilise tout le temps pour accéder à mes bases de données, Access 2000 pour moi, pas de différence avec 2003 pour l'accès au mdb.

Pour créer un Recordset et y accéder
Local $oConn = _ADO_Open("c:\xxx.mdb")
Local $_oRS = ObjCreate("ADODB.Recordset")
$_oRS.Open($SQL, $oConn, $adOpenStatic, $adLockOptimistic)

j'imagine que tu connais quand même bien les objets ADO.
► Afficher le texteExemples de fonction
► Afficher le texteConstantes ADO
Avatar du membre
Yogui
Niveau 9
Niveau 9
Messages : 689
Enregistré le : ven. 18 avr. 2008 17:29
Status : Hors ligne

Re: autoit et BDD

#3

Message par Yogui »

sinon petit lien vers un UDF access :

http://dundats.mvps.org/AutoIt/udf_code.aspx?udf=access$

liste des fonctions

; _accessCompactDB() *
; _accessCreateDB()
; _accessCreateTable()
; _accessDeleteTable()
; _accessListTables()
; _accessCountTables()
; _accessAddRecord()
; _accessUpdateRecord()
; _accessDeleteRecord()
; _accessClearTable()
; _accessCountRecords()
; _accessCountFields()
; _accessListFields()
; _accessQueryLike()
; _accessQueryStr()
; _accessSaveXML()
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: autoit et BDD

#4

Message par Tlem »

@wasabi
Merci de ré-éditer votre message afin de le rendre conforme aux règles de présentation d'un message.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
wasabi
Niveau 1
Niveau 1
Messages : 14
Enregistré le : mar. 17 mars 2009 10:50
Status : Hors ligne

Re: [...]autoit et interrogation base de donnée access 2003

#5

Message par wasabi »

GaRydelaMer :

Merci pour ton aide mais je ne capte pas tout il y as encore une erreur.
J'ai ajouter a tout sa une requete sql mais il m'envoie promener ( encore ^^).
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [...]autoit et interrogation base de donnée access 2003

#6

Message par GaRydelaMer »

Bonjour

c'est quoi l'erreur ?

Le principe, créer un objet "ADODB.Connection"
Puis un RecordSet comme tu le ferais dans un module dans access.

Sinon Ajoute ca dans ton script:

Au début

Code : Tout sélectionner

Global $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc"), $EventError = 0

Func MyErrFunc()
    Local $msg, $HexNumber = Hex($oMyError.number, 8)
    Switch $HexNumber
        Case "_80020009"
            $msg = MsgBox(4 + 16, $FenetreFilms & " Erreur " & $oMyError.scriptline, _
                    "err.scriptline is: " & @TAB & $oMyError.scriptline & @CRLF & _
                    "Risque de doublons" & @LF & @LF & "continuer ?")
            SetError(1, 1)
        Case Else
            $msg = MsgBox(4 + 16, "AutoItCOM Test", "We intercepted a COM Error !" & @CRLF & @CRLF & _
                    "err.description is: " & @TAB & $oMyError.description & @CRLF & _
                    "err.windescription:" & @TAB & $oMyError.windescription & @CRLF & _
                    "err.number is: " & @TAB & $HexNumber & @CRLF & _
                    "err.lastdllerror is: " & @TAB & $oMyError.lastdllerror & @CRLF & _
                    "err.source is: " & @TAB & $oMyError.source & @CRLF & _
                    "err.helpfile is: " & @TAB & $oMyError.helpfile & @CRLF & _
                    "err.helpcontext is: " & @TAB & $oMyError.helpcontext & @CRLF & @CRLF & _
                    "Continuer ???")
            SetError(1, 9)
    EndSwitch
    If $msg <> 6 Then Exit
EndFunc   ;==>MyErrFunc
 
Avec ca tu auras les erreurs renvoyer par les objets ADO.
wasabi
Niveau 1
Niveau 1
Messages : 14
Enregistré le : mar. 17 mars 2009 10:50
Status : Hors ligne

Re: [...]autoit et interrogation base de donnée access 2003

#7

Message par wasabi »

Pour faire simple j'ai une requete sql qui me permet de selectionner dans ma table sous access un login et un utilisateur, mais le souci c'est qu'il refuse completement de tout me renvoyé.
► Afficher le texte
Ou avec ton script:
► Afficher le texte
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [...]autoit et interrogation base de donnée access 2003

#8

Message par GaRydelaMer »

Essaye ca:

Code : Tout sélectionner

Global Const $ProviderJET = 'Microsoft.Jet.OLEDB.4.0'
Global Const $adOpenStatic = 3
Global Const $adLockOptimistic = 3

Global $AccessDB = "C:\connexion.mdb"
Global $oAccessADO = _adoaccessOpen($AccessDB)
Global $rsAccess = ObjCreate("ADODB.Recordset")
Global $SQL = "SELECT username, password FROM utilisateur" ;==>> selectionner ma table.
$rsAccess.open($SQL, $oAccessADO, $adOpenStatic, $adLockOptimistic)

Global $NameList = ""
While Not $rsAccess.EOF
    $NameList &= $rsAccess.Fields("username" ).value & " " & $rsAccess.Fields("password" ).value & @CRLF
    $rsAccess.MoveNext
WEnd
$rsAccess.close
MsgBox(0, "liste des users", $NameList)

Func _adoAccessOpen($AccessDB)
    $oAccessADO = ObjCreate("ADODB.Connection")
    $oAccessADO.Provider = $ProviderJET
    $oAccessADO.Open($AccessDB)

    If @error Then
        MsgBox(0, "ERROR", "Cant open Access Database , handle = " & $oAccessADO)
    Else
        MsgBox(0, "connexion", $oAccessADO.State)
    EndIf
    Return $oAccessADO
EndFunc   ;==>_adoAccessOpen
 
Modifié en dernier par GaRydelaMer le ven. 10 avr. 2009 11:32, modifié 1 fois.
wasabi
Niveau 1
Niveau 1
Messages : 14
Enregistré le : mar. 17 mars 2009 10:50
Status : Hors ligne

Re: [...]autoit et interrogation base de donnée access 2003

#9

Message par wasabi »

erreur identique.

par contre si je met en commentaire ceci

Code : Tout sélectionner

$rsAccess.open($SQL, $oAccessADO, $adOpenStatic, $adLockOptimistic)

Global $NameList = ""
While Not $rsAccess.EOF
    $NameList &= $rsAccess.Fields("username" ).value & " " & $rsAccess.Fields("password" ).value & @CRLF
    $rsAccess.MoveNext
WEnd
$rsAccess.close
MsgBox(0, "liste des users", $NameList)
 
j'ai pas d'erreur.
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [...]autoit et interrogation base de donnée access 2003

#10

Message par GaRydelaMer »

Tu es sur de ton SQL ?

Ajoute la gestion des erreurs tu auras un message un peu plus clair sur l'erreur de ADO.
wasabi
Niveau 1
Niveau 1
Messages : 14
Enregistré le : mar. 17 mars 2009 10:50
Status : Hors ligne

Re: [...]autoit et interrogation base de donnée access 2003

#11

Message par wasabi »

http://img14.imageshack.us/my.php?image ... treoiw.jpg

arf résolu.^^
Aprés vérification j'ai ma table qui s'appelai utiliateur, il manquait le S désolé.
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [...]autoit et interrogation base de donnée access 2003

#12

Message par GaRydelaMer »

L'erreur est claire, il trouve pas la Table "utilisateur" vérifie le nom de la table avec access. Ton SQL est pas bon.

edit:

Alors ca marche !!! (avec le "s"), n'hésite pas à revenir si tu bloque ailleurs dans ton développement.
wasabi
Niveau 1
Niveau 1
Messages : 14
Enregistré le : mar. 17 mars 2009 10:50
Status : Hors ligne

Re: [R]autoit et interrogation base de donnée access 2003

#13

Message par wasabi »

Merci beaucoup de ton aide .

je reviendrai vers toi si je blok encore. merci.
Modifié en dernier par wasabi le ven. 10 avr. 2009 12:58, modifié 1 fois.
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [...]autoit et interrogation base de donnée access 2003

#14

Message par GaRydelaMer »

modifie le titre du sujet pour mettre Résolu.
[R]autoit et interrogation base de donnée access 2003

N'hésite pas, je manipule pas mal de base de données avec AutoIt.
Répondre