Bonjour.
Pour se connecter a une base Access dans laquelle on execute le programme VBA par ADO, il faut :
Le probleme, c'est que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Dim oConn As ADODB.Connection, oRS As ADODB.Recordset Set oConn = New ADODB.Connection oConn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;" & _ "Data Source=" & CurrentProject.FullName & ";" oConn.Open 'Jet ne semble plus fonctionner avec Access 2007 lorsque le fichier est en format accdb et non mdb 'puis ouverture de la table Set oRS = New ADODB.Recordset oRS.CursorLocation = adUseClient oRS.Open "select * from Matable", oConn, adOpenDynamic, adLockOptimistic, adCmdText
- dans la version complete d'Access, si je me trouve sur le formulaire en mode modifications et que je repasse en mode saisie, bien souvent Access me signale que la base est deja ouverte.
- le probleme ne se pose pas si j'ouvre le formulaire (je n'etais pas en mode modifications) dans cette meme version complete d'Access
- lorsque j'ouvre le formulaire avec le runtime Access, la connection a la base par ADO (les lignes indiquees ci-dessus) lui pose probleme, le programme est ferme pour cause d'erreur.
Sachant que, par DAO, lorsque je cherche a ouvrir une table qui se trouve dans le meme fichier que le module VBA, je me contente d'ouvrir la table en indiquant "Currentdb" comme ci-dessous :
J'ai essaye de faire la meme chose par ADO en remplacant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Dim Tb as dao.recordset set tb=currentdb.openrecordset("matable",dbopendynaset)
par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3oRS.Open "select * from Matable", oConn, adOpenDynamic, adLockOptimistic, adCmdText
ou par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 oRS.Open "select * from Matable", CurrentProject.FullName , adOpenDynamic, adLockOptimistic, adCmdText 'j'ai remplace oConn par CurrentProject.FullName
Access me signale qu'il n'a pas pu se connecter a la base. Erreur signalee :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 oRS.Open "select * from Matable", CurrentDb , adOpenDynamic, adLockOptimistic, adCmdText 'j'ai remplace oConn par CurrentDb
"Method 'Open' of object '_Recordset' failed".
Comment peut on faire pour ouvrir une table et travailler dessus par ADO sans ouvrir d'abord un acces a la base Access deja ouverte ?
Merci.
Cdlt.
Partager