Problème Adodoc + datagrid

Résolu
mdelahais Messages postés 30 Date d'inscription mercredi 24 mars 2004 Statut Membre Dernière intervention 16 juin 2009 - 21 févr. 2005 à 16:26
mdelahais Messages postés 30 Date d'inscription mercredi 24 mars 2004 Statut Membre Dernière intervention 16 juin 2009 - 22 févr. 2005 à 17:26
Bonjour à tous!

Je développe sous VB6 et je voudrai afficher le contenu d'une table dans un datagrid. pour cela, j'essaie d'utiliser le code suivant sur le load de mon formulaire :

Dim strRequete As String
Dim laRequete As New ADODB.Recordset


strRequete = "SELECT champ1,champ2 FROM ma_table"
laRequete.ActiveConnection = CNN
laRequete.Open Source:=strRequete, CursorType:=adOpenKeyset, LockType:=adLockOptimistic
Set MonAdodc.Recordset = laRequete


Dans la définition de mon datagrid, pour la propriété DataSource, j'ai mis MonAdodc. Mais rien ne s'affiche. J'ai testé si ma requête fonctionnait. Si je lui fais afficher laRequete.RecordCount, il me retourne -1. Par contre, si je rajoute une boucle pour parcrourir toute la table avec des "larequete.movenext", il parcourt bien toute la table et affiche le contenu dans un msgbox si je lui demande.

Le code vient d'un autre projet où il fonctionnait (et j'ai trouvé des codes similaires sur ce site). Je me demande si il ne s'agit pas d'un problème de paramétrage. Toute idée serait la bienvenue

Un grand merci d'avance.

Matthieu

5 réponses

mdelahais Messages postés 30 Date d'inscription mercredi 24 mars 2004 Statut Membre Dernière intervention 16 juin 2009 1
22 févr. 2005 à 17:26
Ca fonctionne sans utiliser le adodc. Et pour pouvoir compléter les données, il suffit de mettre l'option AllowAddNew à true.
Un grand merci pour ton aide!
Voici le code pour ceux que ça intéresse...

strRequete = "SELECT chp1, chp2 FROM ma_table"
AdodcModeleRF.ConnectionString = chaine_de_connexion
AdodcModeleRF.RecordSource = strRequete
AdodcModeleRF.Refresh
3
the_emperor Messages postés 16 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 18 mars 2005
21 févr. 2005 à 16:37
Parfois le datagrid VB6 part un peu en sucette.
As-tu essayé de supprimer ton datagrid et d'en refaire un tout beau tout neuf?
0
the_emperor Messages postés 16 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 18 mars 2005
21 févr. 2005 à 16:46
Pardon j'avais mal lu.
Clique droit sur ton adodc puis propriétés.
Remplis la chaine de connexion et teste la.
Définis le recordsource(ta requête).
0
mdelahais Messages postés 30 Date d'inscription mercredi 24 mars 2004 Statut Membre Dernière intervention 16 juin 2009 1
22 févr. 2005 à 09:50
J'ai ajouté une chaine de connection et défini un recordsource sur le adodc, mais ça ne change rien. Mais il me semble que lorsque que je fais :
Set MonAdodc.Recordset = laRequete
Ça fait la même chose non?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
the_emperor Messages postés 16 Date d'inscription lundi 16 août 2004 Statut Membre Dernière intervention 18 mars 2005
22 févr. 2005 à 11:45
Je ne sais pas si ça fait la même chose mais pourquoi passes-tu par un adodc si tu crées un recordset, tu gaspilles de la ressource alors que tu peux modifier le datagrid.datasource = larequete
Il est étonnant que ton larequete.recordcount donne -1 à moins que tu travailles avec des tables attachées.
Toujours dans la même idée de balancer des idées, essaie avec un autre cursortype si tu le peux.
Tente également monadodc.refresh et datagrid .refresh
0
Rejoignez-nous