Ouvrir des form différents avec un bouton selon requete sql

pojick Messages postés 5 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 14 septembre 2004 - 22 déc. 2003 à 03:25
pojick Messages postés 5 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 14 septembre 2004 - 24 déc. 2003 à 02:19
bonjour
je travaille sur un projet de programme qui fait bibliotheque de divx, anime, jeux etc...
pour ce faire j'utilise une base de donnée (access) avec une seul table.
Mon probléme est tout bête (enfin je crois) : je ne sais pas
comment faire pour ouvrir des form différents avec un seul bouton selon ce que renvoit la base de donnée.
J'ai besoin de celà pour deux choses : le bouton modifier qui doit appeller la page ou on enregistre un fichier et qui est différente selon le type de fichier et sinon pour la consultation des fiches j'ai une liste ou l'on double clic pour ouvrir la fiche donc meme probleme : les fiches sont <> selon le fichier.
voici le code qui marche pour une seule form appelé (pour la fonction de modification)

Private Sub Bt_Modif_Click()
'Renvoie un message d'erreur si aucun film n'est selectionné
If CodeFilm <> 0 Then
nouv = False
Frm_New.Show
Me.Hide
Else
MsgBox "Selectionne un film !!", vbCritical, "Oublie"
End If
End Sub

maintenant je voudrais ajouter à celà la requete comme variable (ici style "film" mais y'en a 5 differents) :
requete "SELECT * FROM Film WHERE style'film'"

au lieu de juste lancé Frm_New.Show je lancerais Frm_New_film.Show ou Frm_New_anime.Show etc...

voilà j'espere avoir été clair! ... vous l'aurez compris je debute...

pojick

ps: une fois ce soucis réglé j'aurais fini mon prog!!!! donc j'ai vraiment besoin d'aide et envie d'apprendre (en sociologie le vb n'est pas monnaie courante, je n'ais que vous ;) )

6 réponses

cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
22 déc. 2003 à 10:05
Et si tu utilisais une variable pour paramétrer ta requête et tester quelle form doit être affichée...

Dim Style as string

Style = "film"

Requete = "SELECT * FROM FILM WHERE STYLE='" &style &"'"

Select Case Style
Case "film"
formFilm.show
Case "dessin animé"
formDessinAnimé.show
End Select

Programmix
0
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
22 déc. 2003 à 10:07
PS: Je crois que pour les recherches de chaines, il est préférable d'utiliser "WHERE STYLE LIKE" plutôt que "WHERE STYLE ="... A vérifier...

Programmix
0
pojick Messages postés 5 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 14 septembre 2004
22 déc. 2003 à 12:51
merci j'avais pas pensé aux Case... je teste ça tout de suite!!!merci
0
pojick Messages postés 5 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 14 septembre 2004
23 déc. 2003 à 04:08
et bien non .... ça ne marche pas, enfin pas tout a fait
il n'accepte pas de variable

Style = "film"
il ouvre ce qui renvoie a "film" donc le frm_film

si je modifie a la main Style = "anime" là il ouvre uniquement le frm renvoyant a l'anime meme pour un film par ex donc ça marche mais a moitié; j'ai essayé de bidouiller mais rien...donc maintenant il faut arriver a faire en sorte qu'il ouvre le bon frm AUTOMATIQUEMENT en lisant dans la BDD a l'endroit indiqué dan mon premier message

mais merci j'ai déjà résolue 50% du probleme! ;)
0

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

Posez votre question
cs_PROGRAMMIX Messages postés 1133 Date d'inscription mercredi 2 octobre 2002 Statut Membre Dernière intervention 24 juillet 2011 2
23 déc. 2003 à 10:27
En formulant ma réponse, je n'avais pas fait attention à la manière dont tu avais rédigé ton code.

Tu as mis "If CodeFilm <> 0", ce qui implique que tu utilises un nombre et non une chaîne.

Donc, ma proposition devrait être réécrite de la manière suivante :

Select Case CodeFilm
Case 0
nouv = False
Frm_New_Film.Show
Case 1
Frm_New_Anime.Show
Case Else
(...)
End Select

Me.Hide

Else
MsgBox "Selectionne un film !!", vbCritical, "Oublie"
End If

MAIS ATTENTION, il est préférable d'initialiser ta variable avant la requête afin d'être certain que si CodeFilm vaut 0, c'est parce que la requête a renvoyé cette valeur et non parce qu'aucune valeur n'a été renvoyée.

Programmix
0
pojick Messages postés 5 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 14 septembre 2004
24 déc. 2003 à 02:19
je me suis mal expliqué surtout, je crois que j'ai pas fournit toutes les infis nécessaire.
je vais shématiser :
j'ai une listeview qui affiche chaque fichier (film anime etc...)
-on met un fichier en surbrillance
-clic sur le bouton modifier
- le codefilm correspond au numero attribuer a chaque fichier dans la BDD voilà pourquoi y'a le "If CodeFilm <> 0" sinon ça veut dire qu'on a pas mis un fichier de la listview en surbrillance mais le codefilm ne joue pas sur le reste du code, donc ça peut pas être la bonen variable pour ouvrir le bon frm, donc j'utilise bien une chaine et non un nombre.
la chaine ( cette chaine c'est la requete sql en gros) ça ne peut etre que ça je variable puisque c'est ça qui doit determiner quel frm ouvrir.

voilà j'espere avoir preciser les choses
en attendant je cherche de mon coté
merce programmix
0
Rejoignez-nous