ADO m'éclairer...

cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 13 avril 2005 à 13:53
philoo91 Messages postés 46 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 13 juillet 2009 - 13 avril 2005 à 17:12
Salut...


J'ai downloader un petit programme sur le site et j'ai fais quelque modification pour le faire fonctionner avec ma BD.

Voici mon Code


'Déclaration des deux variables pour la connexion
Dim Connection As New ADODB.Connection
Dim MonRs As New ADODB.Recordset


Private Sub Form_Load()

'Type de bases de donnée pour la connexion
Connection.Provider = "Microsoft.jet.OLEDB.4.0"
'Chemin de la base de donnée (APP.PATH permet de ce mettre dans le chemin
'courant la ou ce trouve le projet)
Connection.ConnectionString = "m:\Dossier_Actif.mdb"
'Ouverture de la connection
Connection.Open
'Ouverture de la requête sql dans le recordset
MonRs.Open "Select * from DOSSIERS_ACTIF", Connection, adOpenDynamic, adLockOptimistic

End Sub


Mon programme plante à la dernière ligne soit :
MonRs.Open "Select * from DOSSIERS_ACTIF", Connection, adOpenDynamic, adLockOptimistic


J'aurais besoin d'être éclairer un peu à propose de cette ligne. Quoi fais quoi, bon je saisi quelques éléments mais ca plante et je vois pas pk ???


De plus dans le code que j'ai downloader, la personne utilise cette ligne:
Connection.Provider = "Microsoft.jet.OLEDB.4.0"


Si j'utilise Accesse 2000 est ce que je suis ok de garder cette ligne ??? Car je ne saisi pas trop cette ligne de code.

Merci d'avance

2 réponses

mad_kad Messages postés 23 Date d'inscription mercredi 9 février 2005 Statut Membre Dernière intervention 22 août 2005
13 avril 2005 à 14:26
Tiens un exemple qui marche, ça pourrais bien aider :

Public basecourante As String 'le chemin de la base de données
Public Cx As ADODB.Connection 'acces a la base
Public rs_jeu1 As ADODB.Recordset 'pour operer sur la base
Public sql_requete1 As String 'requete sql


'on peut initialiser les requetes dans le module ou dans le code des form


'init du chemin la base
basecourante = App.Path & "\bases\video1.mdb"



'init de la connexion et ouverture (regardez dans msdn pour les options précises)
Set Cx = New ADODB.Connection
Cx.Mode = adModeReadWrite
Cx.Provider = "Microsoft.jet.OLEDB.4.0"
Cx.Open basecourante


'init du recordset
Set rs_jeu1 = New ADODB.Recordset
rs_jeu.CursorLocation = adUseClient


'init de la requete SQL
sql_requete1 = "SELECT * From table1 ORDER BY table1.champ1;"


'ensuite, quelque part dans le code avec disons une list
Private Sub Form_Load()
'on ouvre le recodset
'et on remplit la liste


rs_jeu1.Open sql_requete1, Cx, adOpenForwardOnly, adLockOptimistic
rs_jeu1.Properties.Refresh

Me.liste1.AddItem ""
While (Not rs_jeu1.EOF)
liste1.AddItem rs_jeu1.Fields(0) 'je prend juste le premier champ
rs_jeu1.MoveNext
Wend
rs_genres.Close
End Sub
0
philoo91 Messages postés 46 Date d'inscription vendredi 14 février 2003 Statut Membre Dernière intervention 13 juillet 2009
13 avril 2005 à 17:12
Regarde si déjà tu es connecté à ta base :

place le msgbox qui suit juste avant l'instruction qui plante

msgbox Connection.state

si tu as un zéro c'est pas bon ta base n'est pas ouverte



Si tu as 1 regarde si tu ne t'ai pas gauffré dans la requette sql

(ex
DOSSIERS_ACTIF le nom de la table est bien orthographié ? la table existe)
0
Rejoignez-nous