Bug dans mon appli VB6

Fermé
beegees Messages postés 83 Date d'inscription samedi 30 décembre 2006 Statut Membre Dernière intervention 1 janvier 2018 - 28 déc. 2008 à 12:06
beegees Messages postés 83 Date d'inscription samedi 30 décembre 2006 Statut Membre Dernière intervention 1 janvier 2018 - 29 déc. 2008 à 13:33
Bonjour tout le monde,

J'ai créé un début d'application en VB6 qui devrait me permettre de simuler l'utilisation d'une machine à café.

à un certain moment, je clic sur une recette, une zone de liste doit montrer les différents ingrédients composant cette recette.

Le problème, c'est que la zone de liste ne se remplit pas.

Pourrais-je vous demander d'exécuter mon appli et de tester par vous-même ?

Voici les instructions pour l'exécution :

- Aller dans le menu "Machine" et choisir "ouvrir le panneau de gestion"
- Y indiquer le mot de passe "secret"
- aller ensuite dans le menu Gestion (qui vient d'apparaître)
- Choisir "Gérer les recettes et les ingrédients
- Sélectionner une recette (par exemple "café normal")
- vous voyez alors apparaitre le nom et le prix de la recette
- dans composition de la recette, devrait venir la composition de la requête par rapport à cette chaine SQL :

Code :

Set rsRecette = BDOuvrirTable("SELECT recette.* , detail_recette.* FROM detail_recette LEFT JOIN recette ON detail_recette.ref_recette = recette.id WHERE recette.id = " & listRecettes(0).ItemData(listRecettes(0).ListIndex), True)
ListCompositionRecette.Text = rsRecette("ref_ingredient") & " x " & rsRecette("nom")

mais comme je l'ai dit plus haut, rien n'apparait dans la zone de liste.

Le problème vient pour moi de la requête ci-dessus, c'est en fait une left join.

Est-il possible de vous laisser l'entierté de l'application et la base de données ?

Un super grand et sincère merci pour votre aide.

beegees
A voir également:

5 réponses

mikebzh Messages postés 127 Date d'inscription samedi 20 décembre 2008 Statut Membre Dernière intervention 11 mars 2009 28
28 déc. 2008 à 12:13
fais un zip de tes fichiers et mets les à dispo sur le site www.cijoint.fr, ensuite tu post le lien ici.
Je verrai ce que je peux faire.
0
beegees Messages postés 83 Date d'inscription samedi 30 décembre 2006 Statut Membre Dernière intervention 1 janvier 2018 7
28 déc. 2008 à 12:17
Salut,

Merci pour ta réponse.

Voici le lien de l'attaché :

http://www.cijoint.fr/cjlink.php?file=cj200812/cijhHBJiAC.zip

Merci encore.

beegees
0
mikebzh Messages postés 127 Date d'inscription samedi 20 décembre 2008 Statut Membre Dernière intervention 11 mars 2009 28
28 déc. 2008 à 12:32
Il manque deux formes
A première vue dans ta requète il semblerait que
[code]
ON detail_recette.ref_recette = recette.id
[\code]

J'ai jeter un petit coup d'oeil aux tables recette.ref_recette et recette.id vont avoir du mal à être identique !!!
0
beegees Messages postés 83 Date d'inscription samedi 30 décembre 2006 Statut Membre Dernière intervention 1 janvier 2018 7
28 déc. 2008 à 12:56
Salut,

La table detail_recette contient un champ lié à la table recette via une zone de texte.

Le champ lié est l'ID (numérique).

Ce que je veux, c'est filtrer la table detail_recette par rapport à l'ID de la table recette.

Je choisis dans la liste (en vb) la recette correspondant à l'ID 1 de la table recette, je vais donc filtrer (avec le left join) la table detail_recette sur l'ID 1.

Qu'en penses-tu ?

Merci encore pour ton aide.

beegees

PS : voici le nouveau lien avec tous les forms :

http://www.cijoint.fr/cjlink.php?file=cj200812/cijItxf3qT.zip
0
mikebzh Messages postés 127 Date d'inscription samedi 20 décembre 2008 Statut Membre Dernière intervention 11 mars 2009 28
28 déc. 2008 à 22:47
On peut essayer un truc du genre

[code]
dim i as integer
...............
Set rsRecette = BDOuvrirTable("SELECT ingredient.nom FROM ingredient WHERE ingredient.id IN (SELECT detail_recette.ref_ingredient FROM detail_recette WHERE detail_recette.ref_recette IN (SELECT recette.id FROM recette WHERE recette.nom ='" & textNomRecette(0).Text & "'))", True)
i = 0
Do While Not rsRecette.EOF
ListCompositionRecette.List(i) = rsRecette("nom")
rsRecette.MoveNext
i = i + 1
Loop
.................
[\code]

A plus
0

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

Posez votre question
beegees Messages postés 83 Date d'inscription samedi 30 décembre 2006 Statut Membre Dernière intervention 1 janvier 2018 7
29 déc. 2008 à 13:33
Salut,

Je te remercie beaucoup pour ta solution.

beegees
0