aptech
Messages postés36Date d'inscriptionsamedi 17 mai 2003StatutMembreDernière intervention 5 juillet 2003
-
13 juin 2003 à 09:41
nono716
Messages postés22Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention 7 juin 2006
-
13 juin 2003 à 10:27
Bonjour j'ai créer une procedurevpour remplir un combo box
je passe en parametre, le nom du combo, le nom de la table, le nom du champs et le nom du champs d'index
à la ligne
.AddItem rstRemplirCombo.Fields(sChamps)
de la procedure si dessu, il me dit qu'il ne connais pas l'objet sChamps, donc il ne detecte pas que sChamps est une variable et donc il cherche sChamps dans le RecordSet et bien entendu il le trouve pas car c'est le nom d'une variable qui contient le nom du champs adequat
Que faire pour résoudre cela c'est assez urgent
merci de votre aide
Public Sub RemplirCombo(sComboName, sTable, sChamps, sIndex)
Dim rstRemplirCombo As New ADODB.Recordset
Dim sSQL As String
Set rstRemplirCombo = CreateObject("ADODB.RecordSet")
sSQL = "SELECT " & sChamps & "," & sIndex & " FROM " & sTable & " ORDER by " & sChamps & ";"
rstRemplirCombo.CursorLocation = adUseClient
rstRemplirCombo.Open sSQL, cnn, adOpenForwardOnly, adLockReadOnly
With sComboName
Do Until rstRemplirCombo.EOF
.AddItem rstRemplirCombo.Fields(sChamps)
.ItemData(.NewIndex) = rstRemplirCombo.Fields(sIndex)
rstRemplirCombo.MoveNext
Loop
.Text = ""
End With
rstRemplirCombo.Close
End Sub
nono716
Messages postés22Date d'inscriptionmercredi 2 octobre 2002StatutMembreDernière intervention 7 juin 2006 13 juin 2003 à 10:27
Je pige pas... J'ai fais le test chez moi en passant le nom d'une variable comme toi et ça passe très bien... :question)
Je vais revenir sur ma première idée : Même avec plusieurs combo différentes, tu peux utiliser la position de ton champs et dans ta fonction mettre
.AddItem rstRemplirCombo(0)
.ItemData(.NewIndex) = rstRemplirCombo(1)
0 correspondant toujours à sChamps et 1 à sIndex et ce même si tu as plusieurs enregistrement dans ton recordset.