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 :

pb d affichage d un champs sur ouverture formulaire


Sujet :

Access

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 47
    Points
    47
    Par défaut pb d affichage d un champs sur ouverture formulaire
    Bonsoir

    comme le titre l indique, je souhaiterais qu'un de mes champs soit deja pré rempli juste apres avoir ouvert un formulaire.
    indication : ce champs qui doit etre rempli contient la meme donnée avec un champs d un autre formulaire.

    par ex : on choisit un produit dans un formulaire, lorsque je clique pour ouvrir un nouveau formulaire je voudrais avoir le champs produit rempli correspondant au champs du 1er formulaire...
    j ai essayé avec perte focus mais ça s affiche que si on clique sur le champs pour avoir la donnée...

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour,

    si tu as une donnée simple à passer, tu peux utiliser OpenArgs de DoCmd.OpenForm. C'est le dernier argument, il te permet de passer une chaine de caractère au formulaire appelé.

    Tu le récupère dans OnOpen avec me.OpenArg

    Pour des données plus complexes tu peux les concatener dans une chaine et puis les découper (avec Split). Ce n'est pas très éléguant mais ça marche.

    Tu peux utiliser aussi le faire en 3 étapes :

    1) Tu ouvre le form en mode Hidden
    2) Tu appelle une fonction public du form qui te permet de passer tes paramêtres.
    3) Tu affiche le nouveau form.

    Un truc du genre dans le formulaire appelant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DoCmd.OpenForm("MonNouveauForm",,,,,acHidden)
    Form_MonNouveauForm.SetParam(p1, p2, p3)
    DoCmd.OpenForm("MonNouveauForm",,,,,acWindowNormal)
    Avec dans MonNouveauForm

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Public Sub SetParam(prmP1 as integer, prmP2 as integer,  prmP3 as integer)
       me.p1=prmP1
       me.p2=prmP2
       me.p3=prmP3
    End sub
    L'intéret c'est que tu conserve le typage de tes données et tu sais ce que le form appelé attend comme paramêtres (grâce à intelllisens) donc tu ne risque pas d'en oublier ou de te tromper dans l'ordre.

    Pour des données TRES complexes tu voudra sans doute utiliser un Objet.



    A+

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 76
    Points : 47
    Points
    47
    Par défaut
    En fait ce que je souhaiterais faire c est :
    quand j ouvre un formulaire je rempli un champ par exemple, lorsque j ouvre un 2 eme formulaire je souhaiterais que la donnée de ce champs apparaissent dans le 2eme formulaire lors de l ouverture, pour que je ne la resaisisse plus ...

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    C'est que j'ai expliqué :-) mais si tu débute je t'ai peut-être embrouillé ;-)

    Je reessaye :

    Donc je suppose ce qui suit :

    Form1 contient un champ Donnee1 que tu veux recopier dans un champs Donnee1 de Form2 et Form1 a un bouton btnOuvrirForm2

    Dans Form1 tu doit avoir du code associé au boutton bntOuvrirForm2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    btnOuvrirFrom2_Click()
      DoCmd.OpenForm "Form2", , , , , , Me.donnee1
    end sub
    Si tu te serts de l'assistant pour créer ton bouton, il y aussi la gestion des erreures que j'ai enlevé ici pour rendre l'exemple plus clair.

    Dans Form2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Form_Open(Cancel As Integer)
      if not isnull(me.OpenArgs) then
        me.Donnee1=me.OpenArgs
      end if
    End sub
    C'est le code minimal, pour plus complexe mais plus sécuritaire, voir le mail précédent.

    A+

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/07/2014, 10h11
  2. Réponses: 0
    Dernier message: 20/06/2009, 09h12
  3. Incrémenter un champ sur ouverture du formulaire
    Par Alain7751 dans le forum IHM
    Réponses: 2
    Dernier message: 12/01/2009, 18h35
  4. Réponses: 16
    Dernier message: 27/10/2006, 16h12
  5. Selectionner champ sur ouverture de formulaire
    Par pigouille dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 07/02/2005, 11h51

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