Lire un recordset d'un autre combobox. [Résolu]

Messages postés
60
Date d'inscription
dimanche 7 novembre 2010
Statut
Membre
Dernière intervention
4 août 2012
- - Dernière réponse : LIBRE_MAX
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
- 17 janv. 2012 à 23:31
Bonjour,

Je développe en ce moment des forms avec des accès odbc. Je suis cependant heurté à un problème de récupération de données. (Je développe en VBA)

   Dim sqlGpt As String
    Dim sqlCIS As String
    Dim rsGpt As New ADODB.Recordset
    Dim rsCIS As New ADODB.Recordset
    
    UF_base.Show
    connexion
    sqlGpt = "select LibelleCS, CodeCS from ENTITES where LibelleCS LIKE 'GPT%' ORDER BY CodeCS ASC"
    rsGpt.Open sqlGpt, cnx, adOpenStatic, adLockPessimistic
    While Not (rsGpt.EOF)
        CB_Groupement.AddItem (rsGpt("CodeCS") & " | " & rsGpt("LibelleCS"))
        rsGpt.MoveNext
    Wend
   CB_Groupement.ListIndex = 0
  rsGpt.AbsolutePosition = CB_Groupement.ListIndex + 1
    'rsGpt.Close
    'Set rsGpt = Nothing
    
    sqlCIS "select LibelleCS, CodeCS, CodeGpt from ENTITES where LibelleCS NOT LIKE 'GPT%' AND CodeGpt " & rsGpt.Fields("CodeCS").Value
    rsCIS.Open sqlCIS, cnx, adOpenStatic
     While Not (rsCIS.EOF)
    
        CB_CIS.AddItem (rsCIS("LibelleCS"))
        rsCIS.MoveNext
    Wend


La connexion marche bien, le remplissage du CB_Groupement aussi mais lorsque je veux appeler le rsGpt.Fields("CodeCS").Value (pour remplir le deuxième combobox) il n'en veut pas : erreur 3251 : le jeu d'enregistrement en cours ne prends pas en charge les signets. Il s'agit peut être d'une limitation du fournisseur ou du type de curseur selectionné.

Une aide serait la bienvenue :)
Afficher la suite 

2 réponses

Meilleure réponse
Messages postés
1402
Date d'inscription
mardi 1 mai 2007
Statut
Membre
Dernière intervention
7 octobre 2012
5
3
Merci
Bonsoir,
tu as probablement raison au sujet du type de curseur, qui doit être dynamique pour pouvoir aller de l' avant..

...

rsGpt.CursorLocation = adUseClient
rsGpt.LockType = adLockOptimistic
rsGpt.Open sqlGpt, cnx, adOpenDynamic

While Not (rsGpt.EOF)
CB_Groupement.AddItem (rsGpt("CodeCS") & " | " & rsGpt("LibelleCS"))
rsGpt.MoveNext
Wend




[] Ce qui va sans dire. va mieux en le disant.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de LIBRE_MAX
Messages postés
14600
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
12 décembre 2019
137
0
Merci
Bonjour,

VBA n'est pas VB.NET, je déplace.

Et si à la place de rsGpt("CodeCS"), essayes rsGpt.Fields("CodeCS") ou rsGpt!CodeCS

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Commenter la réponse de NHenry