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

Fredo06 -  
castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
  2. Fredo06
     
    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
    1. Syzygy Messages postés 404 Statut Membre 147
       
      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
  3. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Que veux tu que je te dise!

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

    créé avec Aceess2002; vues envoyées avec Access2007
    0
  4. castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
     
    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
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Fredo06
     
    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
  7. Fredo06
     
    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
    1. castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
       
      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
    2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      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
    3. Freo06
       
      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
  8. castours Messages postés 2955 Date d'inscription   Statut Membre Dernière intervention   217
     
    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