IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Access Discussion :

Faire correspondre un état et un formulaire [AC-2010]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    chargée d'étude
    Inscrit en
    Août 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : chargée d'étude

    Informations forums :
    Inscription : Août 2016
    Messages : 16
    Par défaut Faire correspondre un état et un formulaire
    Bonjour à tous,

    Je souhaite créer un bouton qui permette d'ouvrir un formulaire depuis un état, et n'afficher que les enregistrements du formulaire correspondant à un groupe de l'état. L'idée est de créer un lien similaire à ce qui se fait entre un formulaire et un sous-formulaire, sauf que dans mon cas le formulaire père est un état.
    Je vais donner des précisions pour que ce soit plus parlant:
    - mon état affiche des données regroupées par opération
    - mon formulaire permet à l'utilisateur d'entrer dans la base une synthèse de ces données par opération

    J'ai donc créé un bouton situé dans l'en-tête de groupe Opérations.
    Mon code est le suivant (évènement sur clic du bouton):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Commande34_Click()
    Dim Formul As String
    Formul = "3_F_Saisie_Diag_gestionBDD_par_op_et_comp"
    DoCmd.OpenForm Formul, acNormal, , "[ID_Operation#]=" & Me![ID_Operation], , acDialog
    End Sub
    (Le champ ID_Operation# est celui du formulaire, le champ ID_Operation est celui de l'état)
    Ce code permet d'ouvrir correctement le formulaire: il n'affiche que les enregistrements correspondant à l'opération en question. En revanche, lorsque j'ajoute un nouvel enregistrement dans le formulaire, il faut repréciser de quelle opération il s'agit. Or j'aimerai que lors de l'ajout d'un nouvel enregistrement, le champ ID_Operation# se renseigne automatiquement.

    J'ai pensé à créer un champ dans l'en-tête de formulaire dans lequel stocker la valeur d'ID_Operation lorsque le formulaire s'ouvre, et ensuite attribuer cette valeur lors de la mise à jour du champ ID_Operation#
    Pour l'instant j'ai essayé de rajouter à mon code précédent ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Forms("[3_F_Saisie_Diag_gestionBDD_par_op_et_comp]").[New_IDop].Value = Reports("[2_E_Fiche_synthese_par_projet]").[ID_Operation].Value
    mais j'ai un message d'erreur qui me dit qu'Access ne trouve pas mon formulaire 3_F_Saisie_Diag_gestionBDD_par_op_et_comp.
    J'avoue que je ne maitrise pas trop la syntaxe pour appeler les formulaires et états...
    Pouvez-vous m'aider sur cette erreur? La démarche est-elle la bonne?

    J'espère que mes explications sont assez compréhensibles.
    Merci d'avance pour vos suggestions!

  2. #2
    Membre chevronné
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Décembre 2015
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ressources humaines

    Informations forums :
    Inscription : Décembre 2015
    Messages : 217
    Par défaut
    Salut,

    Je pense que c'est le AcDialog dans la ligne ci-dessous qui bloque.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm Formul, acNormal, , "[ID_Operation#]=" & Me![ID_Operation], , acDialog
    Tu devrais essayer de modifier la ligne de code et la remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm Formul, acNormal, , "[ID_Operation#]=" & Me![ID_Operation]
    Puis dans ton formulaire "3_F_Saisie_Diag_gestionBDD_par_op_et_comp", Propriétés - > Autres - > Fen indépendante : Oui

  3. #3
    Membre averti
    Femme Profil pro
    chargée d'étude
    Inscrit en
    Août 2016
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : chargée d'étude

    Informations forums :
    Inscription : Août 2016
    Messages : 16
    Par défaut
    Bonjour,

    Merci pour ta réponse martii843, c'était effectivement ça le problème.
    Il m'a suffit de rajouter une ligne de code dans l'évènement après mise à jour d'un des champs de mon formulaire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me![ID_Operation#].Value = Me![New_IDop].Value

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Imprimer un état depuis un formulaire
    Par Alex063 dans le forum Access
    Réponses: 21
    Dernier message: 03/02/2006, 20h08
  2. Réponses: 12
    Dernier message: 27/12/2005, 14h16
  3. Réponses: 13
    Dernier message: 20/10/2005, 14h42
  4. Réponses: 1
    Dernier message: 22/09/2005, 17h15
  5. Réponses: 4
    Dernier message: 03/04/2005, 15h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo