Reference ADODB

stipe Messages postés 33 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 30 décembre 2004 - 17 juin 2004 à 10:51
sarakin Messages postés 1 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 22 juin 2004 - 22 juin 2004 à 15:42
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

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
17 juin 2004 à 12:02
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@
0
gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
17 juin 2004 à 12:03
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+
0
stipe Messages postés 33 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 30 décembre 2004
17 juin 2004 à 12:06
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
0
stipe Messages postés 33 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 30 décembre 2004
17 juin 2004 à 12:41
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 ?
0

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

Posez votre question
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 29
17 juin 2004 à 13:17
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.
0
stipe Messages postés 33 Date d'inscription jeudi 10 avril 2003 Statut Membre Dernière intervention 30 décembre 2004
17 juin 2004 à 13:43
merci pour le conseil, crenaud76, mais ça ne change rien : ma put... de liste est tjs vide!

%-6
0
sarakin Messages postés 1 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 22 juin 2004
22 juin 2004 à 15:42
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 :)
0