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

IHM Discussion :

Afficher un formulaire remplit en fonction d'un bouton dans un autre formulaire [AC-2007]


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 200
    Points : 76
    Points
    76
    Par défaut Afficher un formulaire remplit en fonction d'un bouton dans un autre formulaire
    Bonjour,

    Je vous explique ma situation :
    J'ai crée un formulaire qui permet de créer des enregistrement dans une table. Ceux-ci sont fait par une personne.
    Une fois les enregistrements crées, une autre personne dans un autre service est censé ajouter deux valeurs.
    J'ai donc créer un formulaire A qui affiche une liste des enregistrement qui n'ont pas encore été complété par la seconde personne.
    Je voudrais que grâce à un bouton situé sur chaque ligne, qui représente un enregistrement non complété, un formulaire B soit ouvert et pré-rempli et qu'il n'y ait plus que les deux valeurs à saisir.
    J'ai crée un bouton sur le formulaire A avec l'assistant et l'option ouvrir formulaire, j'ai fait correspondre le champ N° du formulaire A avec le champ N° du formulaire B.
    Mais quand je clique sur le bouton que je crée le formulaire est ouvert mais aucun champ n'est rempli ...

    J'espère que c'est clair ?
    Merci à vous

  2. #2
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Bonjour,
    J'espère que c'est clair ?
    Mmmm, bof.

    Pourquoi un autre formulaire et pas le même avec des liste déroulantes par exemple (moins lourd)...

    Bref, quelque soit ton choix, le formulaire B doit s'ouvrir sur une condition Where du formulaire A avec un champ commun.
    Dans le B tu dois retrouver toutes les valeurs saisie dans le A en lecture seule et les 2 champs à remplir en écriture.

    Argy

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 200
    Points : 76
    Points
    76
    Par défaut
    Oui mais dans le formulaire A je n'ai pas tous les renseignements, c'est juste un formulaire de visualisation pour sélectionner le formulaire à compléter.
    La propriété condition c'est la propriété filtre ?
    En fait avec l'assistant on fait bien référence entre un champ du formulaire A et un champ du formulaire B.
    Cette opération rempli la propriété filtre du formulaire B :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     "[NumLancement]=" & [NumLancement]
    Donc j'ai bien la référence entre mes deux formulaires.
    Le problème c'est que si je met une zone texte avec comme valeur NumLancement je vais avoir toutes les fois le premier numéro de ma table au lieu de celui correspondant au bouton où j'ai cliqué sur le formulaire A.

    Je mets des captures d'écran des formulaire ce sera plus parlant.

    Formulaire de Saisi (c'est ici que la première personne rempli les enregistrements) :


    Formulaire A (liste les enregistrements pas encore complété) :


    Formulaire B (celui censé récupérer les valeurs ):


    A vrai dire je pourrais utiliser le même formulaire pour la création et la "mise à jour" d'un enregistrement ...
    Mais je ne sais pas comment lui signaler la différence.


    [EDIT] Je suis arrivé à afficher les informations en fonction d'un N° de Lancement. Par contre je suis obligé de le saisir dans une boîte de dialogue.
    J'aimerais bien qu'il le récupère automatiquement ...

  4. #4
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Ce n'est pas la propriété Filtre et d'alleur ce n'est pas une propriété, c'est un argument et celui qu'il faut utiliser est WhereCondition.

    Citation Envoyé par Petit Rasta Voir le message
    A vrai dire je pourrais utiliser le même formulaire pour la création et la "mise à jour" d'un enregistrement ...
    Mais je ne sais pas comment lui signaler la différence....
    Tu peux changer la propriéte BackColor du formulaire.
    • Si pas encore enrichi : Blanc
    • Si déjà rempli : une autre couleur

    De plus, les champs déjà remplis voient leur propriété Locked à True et le TabStop à False avec une fonction générique idoine...

    Argy

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 200
    Points : 76
    Points
    76
    Par défaut
    J'ai un peu de mal à comprendre ce qu'est ton argument WhereCondition ...
    J'ai fait un peu de recherche sur le sujet et j'en suis parvenu à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    Private Sub Modifier_Lancement_Click()
    On Error GoTo Err_Modifier_Lancement_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
     
        stDocName = "MAJ_Outillage_injection"
     
        stLinkCriteria = Me.NumLancement
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
    Exit_Modifier_Lancement_Click:
        Exit Sub
     
    Err_Modifier_Lancement_Click:
        MsgBox Err.Description
        Resume Exit_Modifier_Lancement_Click
     
     
    End Sub
    Je mets ce code sur mon bouton qui appelle le formulaire qui devrait nous afficher nos valeurs et nous permettre d'entrer les deux manquantes.
    Le problème est toujours le même, le formulaire appelé ne retrouve pas les valeurs en fonction du NumLancement ...
    En fait de cette manière je ne vois pas comment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    stLinkCriteria = Me.NumLancement
    peut savoir de quel N° de Lancement il s'agit.
    Ensuite du côté du formulaire appelé je ne vois pas comment il récupère la valeur envoyé par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm stDocName, , , stLinkCriteria
    .

    Pour l'utilisation du même formulaire le problème n'est pas de différencier des champs remplis de ceux non remplis mais plutôt d'avoir deux utilisations de ce même formulaire ...
    L'une quand on crée un enregistrement et l'autre quand on le met à jour.

  6. #6
    Rédacteur/Modérateur
    Avatar de argyronet
    Homme Profil pro
    Panseur de bobos en solutions ETL
    Inscrit en
    Mai 2004
    Messages
    5 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Panseur de bobos en solutions ETL
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 5 124
    Points : 12 176
    Points
    12 176
    Billets dans le blog
    5
    Par défaut
    Problème de syntaxe...

    Si tous les formulaires sont correctement construits, ta procédure doit être :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Private Sub Modifier_Lancement_Click()
        On Error GoTo Err_Modifier_Lancement_Click
        DoCmd.OpenForm "MAJ_Outillage_injection", , , "[NumLancement]=" & Me!NumLancement, acFormEdit, acWindowNormal
     
    Exit_Modifier_Lancement_Click:
        Exit Sub
     
    Err_Modifier_Lancement_Click:
        MsgBox Err.Description
        Resume Exit_Modifier_Lancement_Click
    End Sub
    Dans le formulaire "MAJ_Outillage_injection" doivent être présents les champs en question (ceux à remplir) plus ceux déjà remplis. Donc il doit posséder sa source sur la même table ou requête que le formulaire appelant.

    Argy

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    200
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 200
    Points : 76
    Points
    76
    Par défaut
    Merci Chef !

    Effectivement ce n'était qu'un problème syntaxique =)
    Merci encore pour ton aide !
    A la prochaine

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 03/08/2011, 12h16
  2. Réponses: 0
    Dernier message: 09/09/2008, 21h53
  3. Réponses: 9
    Dernier message: 20/11/2007, 17h00
  4. Réponses: 17
    Dernier message: 08/10/2007, 22h37
  5. Réponses: 7
    Dernier message: 23/02/2007, 15h33

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