Recordset et listbox help

cs_gouyette Messages postés 13 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 1 mars 2010 - 4 févr. 2010 à 10:09
cs_gouyette Messages postés 13 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 1 mars 2010 - 4 févr. 2010 à 15:10
Bonjour
je débute en VB6, et je suis confronté au probleme suivant :

Je desire accéder a une table sur un as400, avec une selection sql. Jusque la, ca vas,ensuite je veux écrire le recordset dans une listbox, mais a ce moment j'ai le message suivant :

Run-time error '-2147217896 (80040e18)":
impossible de redemarrer la position de l'ensemble de lignes.

je comprend pas la signification de ce message.
si qq 'un a une idée ou m'explique ou j'ai merd..., d'avance merci.

ps : Mon ordre SQL est saisie dans le form.

ci dessous mon code :
Dim oCnx As ADODB.Connection
Dim oCnxErr As ADODB.Error
Dim oRs As ADODB.Recordset
Dim sSql As String

Private Sub Command1_Click()
Dim I
I = 1

' Instantiate
Set oCnx = New ADODB.Connection
Set oRs = New ADODB.Recordset


' string sql
sSql = txtQuery.Text

' Connection
oCnx.Open "provider=IBMDA400;data source=" & "MERCURE" & "", "toto", "titi"

If oCnx Is Nothing Then GoTo hend

' Query
oRs.Open sSql, oCnx

' chargement listbox
oRs.MoveLast
oRs.MoveFirst

Do Until oRs.EOF
List.AddItem Text1.Text, I
I = I + 1

oRs.MoveNext
Loop

hend:
End Sub

5 réponses

Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
4 févr. 2010 à 13:29
Bonjour,

Ce n'est pas la bonne méthode car si ton Recordset contient beaucoup d'enregistrements, cela va prendre un temps fou, utilises plutôt:

Set List.Datasource = oRS


Calade
0
cs_gouyette Messages postés 13 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 1 mars 2010
4 févr. 2010 à 13:38
ok, merci j'essaie
0
cs_gouyette Messages postés 13 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 1 mars 2010
4 févr. 2010 à 13:56
ok, ca marche mieux, merci
maintenant au lieu de caracteres normal a l'affichage il me donne que des : ??????????????????????????????????????????????? sur toutes les lignes.
si on peux m'aider?
merci
0
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
4 févr. 2010 à 14:44
Désolé, je ne t'ai donné que la moitié de la réponse.
Il faut ajouter:

list.DataField = "le champ source de ton Recordset"


Calade
0

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

Posez votre question
cs_gouyette Messages postés 13 Date d'inscription mercredi 13 mai 2009 Statut Membre Dernière intervention 1 mars 2010
4 févr. 2010 à 15:10
oui j'avais compris et rajouter le reste,
ok, ca marche mieux, merci
maintenant au lieu de caracteres normal a l'affichage il me donne que des : ??????????????????????????????????????????????? sur toutes les lignes.
si on peux m'aider?
merci
0