Reference ADODB

Signaler
Messages postés
33
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
30 décembre 2004
-
Messages postés
1
Date d'inscription
mardi 22 juin 2004
Statut
Membre
Dernière intervention
22 juin 2004
-
bonjour,

je commence à dvenir fou..
je fais un bout de code tres simple:

Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim cnString As String

....

Set cn = New ADODB.Connection
cn.Open cnString
Set rs = New ADODB.Recordset
rs.Open "SELECT le_champ FROM la_table", cn

msgbox rs.RecordCount

maDataCombo.ListField = "le_champ"
Set maDataCombo.RowSource = rs
maDataCombo.Refresh

mon pb est que recordcount vaut invariablement -1 et que ma datacombo reste desesperement vide

je precise que :
- cnString a été renseigné avec les bons params de connexion à une base oracle ou access ou odbc...
- en debug, si je regarde mon rs, il contient des valeurs
- j'ai essayé le rs.open avec toutes les options possibles (statique, dynamique, etc....)
- j'ai essayé de faire des movefirst et movelast, comme c parfois préconisé, mais ça ne change rien sur mon recordcount ni sur ma datacombo
- j'ai essayé de mettre le "Microsoft activeX Data Object library" version 2.0, 2.1 et 2.5 : ça ne change rien
est-ce que qq'un a déjà eu ce genre de pb??

merci d'avance

7 réponses

Messages postés
2169
Date d'inscription
vendredi 20 avril 2001
Statut
Membre
Dernière intervention
30 juin 2009
8
Le Recordcount=-1 c normal sa veut dire que des Enregistrement correspondent à ta Requete

Pour avoir le nombre exact il faut faire par exemple :

--------------------------------------------------------------------
rs.Open "SELECT le_champ FROM la_table", cn
rs.movelast
Nb=rs.recordcount
rs.movefirst

msgbox Nb
--------------------------------------------------------------------
sinon je ne vois pas trop se que tu veux faire ensuite

It@li@
Messages postés
361
Date d'inscription
mercredi 21 mai 2003
Statut
Membre
Dernière intervention
12 novembre 2009
2
Salut,

C'est normal, recordcount vaut -1 (True ou Vrai) si des records sont présent dans le recordset et 0 s'il y en a pas. Si tu veux le nombre de record tu dois faire un MoveLast.

A+
Messages postés
33
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
30 décembre 2004

merci, mais comme je l'ai dit ds mon message : - j'ai essayé de faire des movefirst et movelast, comme c parfois préconisé, mais ça ne change rien sur mon recordcount

rien à faire, le recordcount ne sais m'afficher rien d'autre que -1
Messages postés
33
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
30 décembre 2004

ok pour le recordcount
mais pq est-ce que ma datacombo ne s'alimente pas?
y a-t-il incompatibilité entre les Data Controls et ADODB ??
est-on obligé d'utiliser un adodc ?
Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Pour la combo, essaye de mettre le ...
Set maDataCombo.RowSource = rs
... avant le ...
maDataCombo.ListField = "le_champ"
Je ne me souvient plus si cela a une importance, et j'ai pas VB sous la main pour vérifier.

Christophe R.
Messages postés
33
Date d'inscription
jeudi 10 avril 2003
Statut
Membre
Dernière intervention
30 décembre 2004

merci pour le conseil, crenaud76, mais ça ne change rien : ma put... de liste est tjs vide!

%-6
Messages postés
1
Date d'inscription
mardi 22 juin 2004
Statut
Membre
Dernière intervention
22 juin 2004

Salut stipe, j'ai le même problème et je m'arrache les cheveux un par un depuis deux heures... Si tu as résolu le pb (ou quelqu'un d'autre) merci de me donner un petit coup de pouce :)