Access XP et VB6

Access XP et VB6 - VB/VBA/VBS - Programmation

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!!! :pt1cable:  
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

Reply

Marsh Posté le 15-05-2003 à 10:56:39   

Reply

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.


Message édité par drasche le 15-05-2003 à 11:28:09

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
Reply

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.

Reply

Marsh Posté le 15-05-2003 à 18:17:18    

drasche a écrit :


Sinon montre nous le processus complet d'initialisation de ta connexion, ça aidera à mieux cerner le problème    


 
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.

Reply

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 :D
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 ;)

Reply

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

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed