Pb zone de liste

icimoii Messages postés 2 Date d'inscription lundi 23 février 2004 Statut Membre Dernière intervention 25 février 2004 - 23 févr. 2004 à 11:20
datatunning Messages postés 53 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 22 juin 2007 - 24 févr. 2004 à 09:15
salut tout le monde! je suis debutante en VBA et g un pb surement tout con mais je n'y arrive pas.
Je voudrai à partir d'une valeur choisi dans une zone de lisze,remplir une autre zone de liste cad qu'en choisissant un theme,un sous theme et un article, la liste des dossiers correspondants doit apparaitre dans la zone de liste.
Mais g une erreur:"pas assez de parametres".

voici mon code:

Private Sub code_article_selectionné_Click()

Dim rs As Recordset
Dim db As Database
Dim chaînesql As String
Set db = CurrentDb()
chaînesql = "select libellé_dossier from dossiers,articles,thèmes,sous_thèmes where code_thème.thèmes= code_thème.dossiers and code_sous_thème.sous_thèmes=code_sous_thème.dossiers and code_article.articles=code_article.dossiers and libellé_Thème= '" & theme_selectionné & "' and libellé_sous-thème = '" & ss__themes_selectionné & "' and libellé_article= '" & code_article_selectionné & "'"

Set rs = db.OpenRecordset(chaînesql)
Do While Not rs.EOF
Liste11 = rs("libellé_dossier")
rs.MoveNext
Loop
rs.Close
db.Close



MERCI D AVANCE!!!

6 réponses

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
23 févr. 2004 à 11:48
Salut,

G une tite idée, pour une requete comme ça je fais plutot :

chaînesql = "select libellé_dossier from dossiers,articles,thèmes,sous_thèmes where thèmes.code_thème= dossiers.code_thème and sous_thèmes.code_sous_thème=dossiers.code_sous_thème and articles.code_article=dossiers.code_article and libellé_Thème= '" & theme_selectionné & "' and libellé_sous-thème = '" & ss__themes_selectionné & "' and libellé_article= '" & code_article_selectionné & "'"

donc syntaxe : nom_table.nom_champ

vérifie aussi que libellé_dossier, libellé_Thème, libellé_sous-thème et libellé_article sont chacun dans une seule table, sinon il faudra que tu précises la table avant (ex dossier.libellé_dossier)

Cordialement

CanisLupus
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
23 févr. 2004 à 11:52
G oublié, tu n'aurais pas oublié aussi un additem ?

Liste11.additem rs("libellé_dossier")

au lieu de

Liste11 = rs("libellé_dossier")

Cordialement

CanisLupus
0
datatunning Messages postés 53 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 22 juin 2007 1
23 févr. 2004 à 11:56
Salut,

Premiere chose concernant ton code, evite les accents dans tes libelles de colonnes
theme et pas thème !!!
trop penible a utiliser, surtout pour celui qui passe derrriere toi dans le code !!!!

Essaie d'appliquer une notation standard telle que :
sThemeSelect au lieu de theme_selectionné
m_lthemeID pour une variable module long.
g_bValide pour une variable globale booleenne
etc.

Utilise les ID plutot que les libelles dans tes requetes (si possible).
Remplit tes listes avec les libelles, mais stocke les ID dans la property ItemData.

Utilise egalement la property value du recordset
Liste11 = rs("libellé_dossier").VALUE
Car dans certain cas, c'est l'objet que tu affectera à pas la
valeur !!!

Dans ta boucle DO WHILE, si tu souhaite ajouter le libelle du dossier, utilise la property additem de la liste, çà passera mieux

Voici un exemple de remplissage de liste

' VIDE LA LISTE
lstUsers.Clear

' AJOUTE UN ITEM
' D_sLibelle : D = Dossier
' s = string
' libelle = nom du champ
lstUsers.ADDITEM rs("D_sLibelle").value

' RECUPERE L'INDEX DU DERNIER ELEMENT INSERER
' POUR ATTACHE L'ID
lstUsers.ITEMDATA(lstUsers.NewIndex) = rs("D_lDossierID").value

Dernier point, si tu peux, utilise des procedures stockees

Datatunning (Bruno)
0
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 21
23 févr. 2004 à 12:11
Encore un oubli,

Puisque, visiblement, tu utilises DAO, ce n'est pas
rs("libellé_dossier") mais rs.fields("libellé_dossier") qu'il faut utiliser pour le remplissage de ta liste.

Cordialement

CanisLupus
0

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

Posez votre question
ld40 Messages postés 336 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 22 février 2019 1
23 févr. 2004 à 20:45
datatunning est un peu dur mais c'est vrai que si tu te fixes des règles dès l'origine, c'est plus facile pour tous de relire ton code.

(D'un autre coté tu utilises les noms de variables proposées dans l'aide Access donc à qui la faute hein?)

par contre je te déconseille également d'utiliser les accents.
un jour ou l'autre tu le payes.
Rien qu'au niveau des requetes sql...
Et dans Access, à part reprendre tout depuis le début...(snif)
0
datatunning Messages postés 53 Date d'inscription jeudi 2 octobre 2003 Statut Membre Dernière intervention 22 juin 2007 1
24 févr. 2004 à 09:15
Bonjour,

Dur !!! je ne trouve pas, mais je suis un incompris, snif, snif... ;-)

J'ai fais les memes erreurs a mes debuts, et j'en ferai d'autre....

Je ne veux pas froisser les suceptibilites, mais juste donner un avis issue du fruit de mon experience.

Datatunning (Bruno)
0
Rejoignez-nous