je construis une base dans laquelle j'utilise des boîtes de dialogue.
Une boîte contient une zone de liste, et je voudrais qu'à son affichage elle propose dans la liste les valeurs enregistrées dans un champ d'une table.
J'ai utilisé le livre de Mr Marcelly et lu beaucoup de sujets en lien sur votre forum, mais je bute sur un problème que ne vois nulle part évoqué : la liste n'est pas remplie avec le résultat de la requête SQL, mais avec la requête elle-même. J'ai fabriqué une base uniquement centrée sur ce problème : Une table : Table1 avec un champ : chpID (integer, non auto, clé primaire) ; contient 3 enregistrements
Un module : Module1
une procédure : procRemplirListe doit affecter à la liste les valeurs des champs des 3 enregistrements, et afficher la boîte de dialogue.
Une boîte de dialogue : Dialog1 contient un contrôle de type liste de choix, déroulante : ListBox1
ModUtilitaires contient la fonction pour l'ouverture du dialogue (Mr Marcelly)
Code : Tout sélectionner
Sub procRemplirListe
dim oDlg as object 'pour la boîte de dialogue
dim oBoiteListe as object 'pour le contrôle
dim strSQL as string
'créer la boîte de dialogue
oDlg = FctCreerDialogue("Standard", "Dialog1")
'remplir la liste de la zone de liste du contrôle ListBox1 avec les enregistrements du champ chpID de la table Table1
'Initialiser l’objet vue du contrôle
oBoiteListe = oDlg.getControl("ListBox1")
'préparation instruction SQL
strSQL = "SELECT ""chpID"" FROM ""Table1"" "
'Atteindre le modèle du contrôle et lui affecter le tableau comme liste
oBoiteListe.Model.stringItemList = Array(strSQL)
'Afficher la boîte
oDlg.execute
End Sub
Je vous remercie