Access - Ouvrir un état à partir d'un formula

Fermé
Fredo06 - 10 mai 2011 à 17:00
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 - 12 sept. 2011 à 12:29
Bonjour,

J'aimerai pouvoir ouvrir un état à partir d'un formulaire actif.
Je m'explique: j'ai crée des requêtes qui me servent à trouver des enregistrements précis, le résultat s'affiche sous forme de formulaire, à partir de là je voudrais qu'en cliquant sur un bouton on accède directement à un état reprenant les informations de l'enregistrement en question uniquement, pour ensuite l'imprimer.
J'ai un peu cherché sur les forums dans les sujets existants, mais je n'ai rien trouvé qui fonctionne.

Si quelqu'un pouvait m'aider ce serait vraiment formidable.

PS: je débute à peine en VBA

Merci d'avance à tous ceux qui se donneront la peine de me répondre.

7 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
10 mai 2011 à 18:00
Bonjour

par ex:
ta table:T_clients
ton formulaire: F_clients
identifiant client: id_client

construit une requete R_ficheclient à partir de T_clients et mets toi en mosde création
sous l'identifiant client (id_client) dans critère tu écris
forms!F_clients!id_client


dans l'onglet "etat" demande "créer un etat à l'aide de l'assistant" et sélectionne la requete ficheclient

et sur ton formulaire tu crées un bouton de recherche
0
Bonjour,
tout d'abord merci d'avoir répondu.

Malheureusement, ça ne marche pas. Lorsque je rentre le critère :

forms!F_clients!id_client

la syntaxe "!" n'est pas acceptée

du coup il n'y a aucune valeur dans l'état.

Cordialement.
0
Syzygy Messages postés 378 Date d'inscription vendredi 29 avril 2011 Statut Membre Dernière intervention 31 décembre 2011 143
14 mai 2011 à 15:08
Bonjour,

Avez-vous mis des crochets autours des noms dans votre zone de critère ?

La syntaxe "forms!F_clients!id_client" est incorrecte. Remplacez la par la suivante :

[forms]![F_clients]![id_client]

Normalement çà devrait fonctionner
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
12 mai 2011 à 22:40
Que veux tu que je te dise!

regarde les preuves:
https://www.cjoint.com/?3EmwMzVWxlP

créé avec Aceess2002; vues envoyées avec Access2007
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
14 mai 2011 à 14:50
Bonjour
Je te joins une procedure pour ouvrir en apercu un etat.

'apercu del'état pour imprimer tu remplaces acPreview acNormal

Private Sub ImprimeEtat_Click()
On Error GoTo Err_ImprimeEtat_Click

Dim stDocName As String
stDocName = "Nom de L'état"
DoCmd.OpenReport stDocName, acPreview

Exit_ImprimeEtat_Click:
Exit Sub

Err_ImprimeEtat_Click:
MsgBox Err.Description
Resume Exit_ImprimeEtat_Click

End Sub
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
14 mai 2011 à 15:12
Bonjour,

Merci pour ta participation mais Fredo06 a l'air de se moquer des propositions comme de sa 1° layette
remarque: nos macros sont pratiquement les m^mes puisque faites avec l'assistant !
0

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

Posez votre question
Bonjour, désolé de ne pas avoir répondu plus tôt mais j'ai eu pas mal de boulot ces derniers jours, we compris.
En tout cas merci à tous de m'avoir accordé du temps, je vais tester vos solutions et je vous tiens au courant.

Bonne journée
0
Bonsoir,

merci à tous de m'avoir consacré du temps.
J'ai pu aujourd'hui essayer les différentes solutions.

Concernat la solution de Syzygy, je pense pas avoir tout bien fait, je rentre [forms]![F_clients]![id_client] dans le critère du champ "id_client" de ma requête (celle qui sert à ouvrir le formulaire et l'état), et quand j'execute la requête j'ai une boite de dialogue qui apparait en me demendant de taper une valeur pour [forms]![F_clients]![id_client]
Je pense que je doit pas bien faire un truc...

Concernant la solution de Castours, ça fonctionne, sauf que quand je clique sur le bouton pour ouvrir mon état, j'ai là aussi une boite de dialogue qui apparait en me demandant de taper un id_client. En fait c'est la même boite de dialogue que quand j'éxécute la requête.
Donc au final j'arrive bien à ouvrir l'état qui correspond au formulaire actif, mais je voudrais éviter d'avoir à retaper 2 fois le même id_client.

Par avance merci pour votre attention.

Bonne soirée
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
16 mai 2011 à 21:22
Bonjour
Si ton etat est basé sur la requete , il est normale que tu es le probleme meme avec le bouton.
Il te faut regler le probleme de ta requete. Suivant les infos que tu nous transmets, on dirait une requete parametrée avec une condition where.
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 311
17 mai 2011 à 07:51
Désolé d'avoir dérangé en essayant de t'aider et en te montrant des extraits d'une base qui fonctionne; les crochets sont mis automatiquement par Access....

Pour le B.A.BA d'access jusquau'au niveau "pro"consulter
http://www.self-access.com/cms/
0
Bonjour, je ne comprend pas pourquoi vous le prenez comme ça, je vous ai déjà remercié dasn les messages précédents pour m'avoir aidé.
Je suis prêt à adopter votre solution , mais malheureusement je n'arrive pas à la faire marcher, donc comme je l'ai déjà dit un peu plus haut, il y a surement qque chose que je ne fais pas bien, pourriez vous s'il vous plait me préciser pas-à-pas la marche à suivre, nottament j'aimerais savoir où placer "[forms]![F_clients]![id_client] ".

Cordialement
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
12 sept. 2011 à 12:29
bonjour
bonjour
Voila un exemple de code pour un bouton d'impression pour imprimé l'enregistrement en cours d'un formulaire

Private Sub Btn_ImpFacturation_Click()
On Error GoTo Err_Btn_ImpFacturation_Click

Dim stDocName As String

stDocName = "E_Facturation"
DoCmd.OpenReport stDocName, acNormal, , "[IdUnion]=" & Me![IdUnion]

Exit_Btn_ImpFacturation_Click:
Exit Sub

Err_Btn_ImpFacturation_Click:
MsgBox Err.Description
Resume Exit_Btn_ImpFacturation_Click

End Sub
0