|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 14 ![]() |
Bonjour,
j'ai une base access avec un formulaire ("Fiche Films") basé sur une table avec une 100ène d'enregistrements (de films) basés sur un numéro. J'ai créer un formulaire ("Recherche film par titre") basé sur une requête pour faire une recherche rapide sur ces 100 enregistrements. Il me sort alors le titre, l'affiche et le synopsis. J'ai ajouté un bouton action, et je voudrais par une macro, fermer le formulaire "recherche film par titre" (sa c'est bon), ouvrir le formulaire ("Fiche Films"), et accéder à la fiche du N-ième enregistrement, correspondant au titre du film qui était sélectionné. Comment puis-je faire svp? merci d'avance Amariel |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mars 2006 Messages : 2 309 ![]() |
Bonjour,
Pour faire plus simple, tu pourrais accéder directement à ta fiche Film dès que tu as sélectionné son numéro dans ton formulaire "Fiche film".... Ces anciens post devrait te donner quelque idée.... Ouvrir formulaire correspondant à une ligne. Comment fait on pour ouvrir un formulaire en fonction d'un enregistrement ? ....pour commencer...
__________________
FreeAccess "Petit à petit l'araignée tisse sa toile" |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 14 ![]() |
Non justement je ne peux pas!
Je m'explique: Je fais un recherche avec comme mot clé "american" parce que je me rappelle plus du titre complet. Il me sort alors american beauty, american history X, american gangsters... Je créer donc une présentation rapide de tous les films contenant le mot "american", je regarde quel film correspond au titre que je voulais et je clique alors si acceder à la fiche pour ouvrir la fiche complète. Par contre je suis désolé je pige pas trop toutes les lignes de codes (je sais me servir des options disponibles dans access, mais programmer les boutons et autre système d'accès ou de recherche je comprend rien). Spour sa que je cherche la mache à suivre sans code pour accéder un enregistrement précis. ex: je consulte la fiche rapide de american history X parce que j'ai recherché le mot american, je clique sur "Fiche complète" et j'accède directement à la fiche complète n°X du film American history X. |
|
|
00
|
|
|
#4 | |||||
|
Expert Confirmé
![]() Inscription : mars 2006 Messages : 2 309 ![]() |
OK, avec un peu plus d'explications.....c'est plus clair...
Citation:
Le code présent sur ton bouton action doit être sous la forme: Code :
Code :
Me.ListeChoix.Column(0) = nom de ta Zone de liste de ton formulaire "Recherche film par titre". Pour plus d'explications, regarde l'aide d'ACCESS sur Méthode OpenForm
__________________
FreeAccess "Petit à petit l'araignée tisse sa toile" |
|||||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 14 ![]() |
Euh je t'ai envoyé un MP pour éviter de trop étaler mon ignorance sur access... je ne comprend pas déjà comment programmé le bouton? Je sais y appliqué des macros mais y appliquer un code, non!
|
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() Inscription : mars 2006 Messages : 2 309 ![]() |
Donc n'hésite pas à nous faire part de tes difficultés (tout le monde a un jour débuté..)....et l'ensemble des membres du Forum seront à même de t'aider... Ceci dit, la programmation par le code VBA n'a rien de très compliquée......la première chose est de lire ce tuto de base, le comprendre et essayer de l'appliquer à ta propre application.. Les événements avec Microsoft Access Initiation au VBA Office Si tu sais affecter une macro à un contrôle bouton de commande, alors affecter du code VBA est tout aussi simple.... Si tu regarde bien, quand un contrôle est sélectionné, dans la fenêtre des propriétés sous l'onglet Évènements, tu trouvera l'ensemble des "actions" applicables à ce contrôle. Ainsi, pour appliquer une action qui survient lors d'un clic sur ton bouton de contrôle (btnOuvrir) permettant d'ouvrir un autre formulaire, il suffit de cliquer sur le bouton situé en regard de l'événement "Sur clic" [...]......et de choisir "Générateur de code" et de cliquer sur OK. Tu te retrouvera directement dans l'éditeur de code avec ton curseur placé entre ces deux lignes...: Code :
__________________
FreeAccess "Petit à petit l'araignée tisse sa toile" |
||
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 14 ![]() |
Ok donc j'ai fais ce que tu m'as dis dans le générateur de code (effectivement il m'ouvrait par défaut le générateur de macro, j'laurais pas trouvé par accident si tu m'avais pas dis comment faire! Merci
Sinon j'ai repris ton code voila ce que sa me donne au final (et sa ne marche pas, j'ai dus oublié quelques chose). Code :
Je crois que ce qui ne va pas vient de: Je t'avouerais que je ne comprend pas trop cette ligne, si tu pouvais me la préciser! Parce que y'a quelques chose que je ne comprend pas, c'est la recherche de la fiche complète par le numéro. Ma requête de recherche de titre se base sur le champ Titre de ma table Liste Films, qui est intégré dans mon formulaire "RechercheFilmsTitre", ce dernier n'affichant pas le numéro mais uniquement le titre du film, l'affiche et le synopsis. Le numéro à beau être la clé de ma table Liste Films, comme je ne créer pas de table lors de la recherche par titre je ne comprend pas comment il peut retrouver la fiche complète par le numéro si il n'est pas référencé dans mon formulaire de recherche. Ce qu'il faudrait c'est une comparaison par titre complet de film et pas par le numéro. J'espère avoir été clair, sur ce que je trouvais pas clair ^^" |
||
|
|
00
|
|
|
#8 | ||
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 14 ![]() |
Bonjour,
je refais un up car je n'ai toujours pas réussi à accéder à l'enregistrement que je voulais. Sur un forum, j'ai vu un post avec ce code: Code :
|
||
|
|
00
|
|
|
#9 | |
|
Expert Confirmé
![]() Inscription : mars 2006 Messages : 2 309 ![]() |
Bonjour,
Et bien tu y es presque.... Ici [<Champ lié1>] correspond au nom du champ présent sur le formulaire à ouvrir. Ce champ correspond au paramètre ConditionWhere de la méthode OpenForm. C'est ce paramètre qui détermine quelle(s) valeur(s) doit afficher ton formulaire. Ici & Me![<champ lié2>] correspond au nom du champ présent sur ton premier formulaire. L'exemple donné dans l'aide d'ACCESS est assez parlant ![]() Citation:
Code :
DoCmd.OpenForm "FormAOuvrir", , , "(NomChamp)= '" & Me.NomChampPremierForm & "'" tu trouvera comment écrire la bonne syntaxe en fonction que ton champ soit de type numérique ou de type texte...:Type de données incompatible dans l'expression du critère Et toujours dans la même ...Comment ouvrir un formulaire en fonction d'une valeur contenue dans un autre formulaire ?
__________________
FreeAccess "Petit à petit l'araignée tisse sa toile" |
|
|
|
00
|
|
|
#10 |
|
Invité de passage
![]() Inscription : janvier 2011 Messages : 14 ![]() |
Pifou, gros pas en avant, je rejoins la bonne fiche complète en fonction de la fiche que je regarde.
Sinon quand je cherche alien, il me met les fiches dans mon formulaire recherchefilmtitre de Alien, Alien 2, Alien 3, Alien 4 et Braquage à l'Italienne. Mais comme il a recherché en fonction du titre qui est en fait "Alien 1 - Le 8 ème passager", je n'ai qu'une seule fiche dans mon formulaire Liste Films. Comment je peux lui dire que je veux qu'il m'affiche toutes les fiches qui se sont sorties lors de la recherche: soit ex: Alien 1 (fiche 42), Alien 2 (fiche 43), Alien 3 (fiche 44), Alien 4 (fiche 45) et Braque à l'Italienne (fiche 92)? |
|
|
00
|
|
|
#11 |
|
Expert Confirmé
![]() Inscription : mars 2006 Messages : 2 309 ![]() |
Dans l'exemple donné, tu fais une recherche par rapport au nom du film...
Quand tu es positionné sur la fiche du film "Alien 1 - Le 8 ème passager", ton paramètre ConditionWhere est donc égale à "Alien 1 - Le 8 ème passager".........donc ici, il est normal que ton formulaire ne fasse apparaitre QUE cet enregistrement. Si tu souhaite avoir TOUS les enregistrements dont le nom du film commence par "Alien" ou qui contient "alien".......il faut changer le critère de ta condition.. Regarde du côté de LIKE.. Comment chercher les enregistrements contenant une certaine chaîne ? (LIKE) ...tu trouvera également tout ce qu'il te faut dans les tutos.. Formulaires de recherche
__________________
FreeAccess "Petit à petit l'araignée tisse sa toile" |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com