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

Access Discussion :

Champ prérempli sur passage d'un formulaire à un autre


Sujet :

Access

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 31
    Points : 20
    Points
    20
    Par défaut Champ prérempli sur passage d'un formulaire à un autre
    Bonjour,

    voici ce que je tente de réaliser en ce moment. J'ai deux tables : Table1 et Table2.
    Table1(ID,Nom,Prenom,Sexe)
    Table2(Nom,Caracteristique1,Caracteristique2)
    La Table1 a une clé primaire ID. La Table2 est liée à la Table1.

    J'ai un formulaire me permettant de rentrer un enregistrement dans la Table1, je souhaite que lorsque je clique sur un bouton, j'accède au formulaire pour la Table2, et que celui-ci ait déjà le champ « Nom » prérempli avec ce qui a été indiqué avant (dans le formulaire Table1).

    J'ai essayé ce qui est indiqué à cette adresse http://access.developpez.com/faq/?pa...#PreremplChamp
    mais je n'arrive à préremplir que des champs indépendants (sans intérêt dans mon cas)...

    Merci par avance pour vos indications.
    Antoine

  2. #2
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonsoir,

    Si on part du principe que les contrôles dans les deux formulaires ont les mêmes noms que les champs auxquels ils sont liés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    ' Dans Formulaire1, Bouton Ouvrir Formulaire2
    Private sub cmdOuvrirForm2_Click() 
        Application.DoCmd.OpenForm "Formulaire2",,,,acFormAdd,,me.[Nom] 
    End Sub
    
    ' Dans Formulaire2
    Private Sub Form_Open(Cancel As Integer) 
    If IsNull(Me.OpenArgs) Then 
        'rien à faire 
    Else 
        Me.[Nom]=Me.OpenArgs
    End if 
    End Sub
    Quel est le problème quand le contrôle est lié à un champ d'une table ?
    Tu as un message d'erreur ?

    A+

  3. #3
    Membre à l'essai
    Inscrit en
    Juillet 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 31
    Points : 20
    Points
    20
    Par défaut
    Citation Envoyé par LedZeppII
    Tu as un message d'erreur ?
    oui, voir la pièce jointe, car il m'est bien incompréhensible !
    Je joins aussi la base pour tester, il suffit de mettre le champ "Nom" en indépendant dans le second formulaire pour que cela fonctionne...

    Merci
    Antoine
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  4. #4
    Expert éminent
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Points : 7 759
    Points
    7 759
    Par défaut
    Bonjour,

    Je comprends pourquoi tu parlais de contrôle indépendant maintenant.
    Si je me souviens bien, à l'ouverture les données source ne sont pas encore présentes.
    Il faut donc mettre le code dans l'évènement 'Sur chargement' dans le 2ème formulaire.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Private Sub Form_Load()
    If IsNull(Me.OpenArgs) Then
        'rien à faire
    Else
        Me.[Nom] = Me.OpenArgs
    End If
    End Sub
    Ensuite la relation entre les tables Table2.Nom = Table1.ID, implique qu'il faut transmettre ID au lieu de Nom.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Private Sub Commande6_Click()
            DoCmd.RunCommand acCmdSaveRecord ' sauvegarde de l'enregistrement en cours
            Application.DoCmd.OpenForm "Table2", , , , acFormAdd, , Me.[ID]
    End Sub
    J'ai ajouté une commande pour sauver l'enregistrement.
    C'est pour le dernier point ci-après.

    Pour afficher le Nom plutot que l'ID dans le deuxième formulaire :
    Faire un clic-droit sur le contrôle Nom et choisir Remplacer par zone de liste modifiable.
    Pour cette zone de liste, mettre les même propriétés que le champ Nom dans la table Table2.
    C'est à dire Contenu, Colonne liée, Nbre de colonnes, largeur colonnes.

    Bon courage.

Discussions similaires

  1. [AC-2013] Somme de champs contenus sur différentes lignes de formulaires contigus
    Par Defaultuser01 dans le forum Access
    Réponses: 18
    Dernier message: 02/04/2014, 21h18
  2. Réponses: 2
    Dernier message: 23/11/2008, 14h39
  3. Passage d'un formulaire à un autre sur une 2ème page
    Par jlbrenas dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 25/01/2007, 22h43
  4. [débutant][C#] passage d'un formulaire à un autre
    Par Monstros Velu dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/08/2006, 16h47
  5. passage d'un formulaire à l'autre
    Par zeloutre dans le forum Access
    Réponses: 4
    Dernier message: 20/07/2006, 09h25

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