Access XP et VB6 - VB/VBA/VBS - Programmation
Marsh Posté le 15-05-2003 à 11:26:53
ton problème n'est pas dans la version d'ADO mais peut-être plutôt dans la version du moteur Jet sous-jacent que tu essaies d'employer. Peux-tu nous montrer ta ConnectionString?
Si le provider est "Microsoft.Jet.OLEDB.4.0", remplace "4.0" par "3.51" à tout hasard.
Sinon montre nous le processus complet d'initialisation de ta connexion, ça aidera à mieux cerner le problème
Edit: tu peux décocher la référence à la Recordset library, c'est superflu car les recordsets sont déjà présent dans l'ADO de base.
Marsh Posté le 15-05-2003 à 11:47:58
bah en fait j'ai juste 3 zone de txt et une barre adodc qui me permet de me baladder dans le recordset.
ET en fait j'ai paramétré ma connexion dans les propriétés de la barre adodc.
J'ai teste le driver jet 3.51 et 4.0 c pareil.
Je vais tenter de le faire à l'ancienne au code.
et je vous tiens au courant.
Marsh Posté le 15-05-2003 à 18:17:18
drasche a écrit : |
Option Explicit
Dim cnnado As New ADODB.Connection
Dim cmdado As New ADODB.Command
Dim rsado As New ADODB.Recordset
Private Sub Form_Load()
cnnado.Provider = "microsoft.Jet.oledb.4.0"
cnnado.ConnectionString = "C:\Program Files\Microsoft Visual Studio\VB98\ACCESS\biblio2k.mdb"
cnnado.Open
cmdado.ActiveConnection = cnnado
cmdado.CommandText = "Select * From Authors"
rsado.CursorLocation = adUseClient
rsado.CursorType = adOpenDynamic
rsado.LockType = adLockPessimistic
rsado.Open cmdado
End Sub
Le code je l'ai pris sur mon livre sur vb.
Je vais tester différents truc style stocker le rs dans un tableau.
j'espère que ça marchera.
Marsh Posté le 15-05-2003 à 18:29:06
bon alors:
1) la référence à la librairie des recordsets n'est pas utilisée, tu peux donc la virer
2) il serait intéressant que le CursorLocation sur la connexion et le recordset concordent. D'après MSDN, le recordset hérite de la valeur de la connexion, donc dans ton cas adUseServer par défaut.
3) à essayer si 2) donne pas de résultat probant: joue sur le type de locking. Surtout que dans le cas présent, tu fais un select et rien de plus, donc le readonly est suffisant dans ce cas là.
4) Tip d'optimisation: si tu comptes uniquement lire une fois ton recordset du premier au dernier record, ton CursorType devrait être adForwardOnly (= en avant uniquement). Il sera automatiquement positionné sur le premier enregistrement s'il y en a lorsque tu l'ouvres, plus qu'à faire une boucle (cfr ma FAQ en signature ).
5) autre tip d'optimisation: l'objet Command n'est pas obligatoire, tu peux parfaitement ouvrir un recordset en deux lignes: création du recordset, et ouverture en lui filant tous les paramètres d'un seul coup, mais le résultat sera rigoureusement identique
Marsh Posté le 15-05-2003 à 18:30:59
Yes
Apparement ça marche j'ai fait un rs.recordcount et ça me donne bien le nb d'enregistrement donc je pense que ya pas de pb.
Je teste plus en profondeur et je vous tiens au courant.
bye
Marsh Posté le 15-05-2003 à 10:56:39
Je comprends pas.
J'ai ma base de donnée exemple biblio format donc access 97.
La connection se passe bien grâce à l'assistant.
Par contre je ne possède que office xp, donc mes bdd de donnée créer sont créer au format access 2k ou xp!!!
Bon jusque là ça va.
Mais quand je fais ma connexion à une base access xp, il me marque "format de base de donnée non reconu".
Est ce qu'il me manque un composant ?
J'ai cocher dans les références :
-microsoft active x data object 2.7 library
-microsoft active x data object recordset 2.7 library.
Si vous pouviez m'aider je vous serez reconnaissant.
bye bye
et merci