Lire un recordset d'un autre combobox.

Résolu
cartman29 Messages postés 60 Date d'inscription dimanche 7 novembre 2010 Statut Membre Dernière intervention 4 août 2012 - 17 janv. 2012 à 15:12
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 :)

2 réponses

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
17 janv. 2012 à 23:31
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.
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
17 janv. 2012 à 19:41
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
0
Rejoignez-nous