icimoii
Messages postés2Date d'inscriptionlundi 23 février 2004StatutMembreDernière intervention25 février 2004
-
23 févr. 2004 à 11:20
datatunning
Messages postés53Date d'inscriptionjeudi 2 octobre 2003StatutMembreDernière intervention22 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
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 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)
datatunning
Messages postés53Date d'inscriptionjeudi 2 octobre 2003StatutMembreDernière intervention22 juin 20071 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
cs_CanisLupus
Messages postés3757Date d'inscriptionmardi 23 septembre 2003StatutMembreDernière intervention13 mars 200621 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
Vous n’avez pas trouvé la réponse que vous recherchez ?
ld40
Messages postés336Date d'inscriptionjeudi 30 janvier 2003StatutMembreDernière intervention22 février 20191 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)