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 :

Textes par défaut dans un formulaire


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 101
    Points : 66
    Points
    66
    Par défaut Textes par défaut dans un formulaire
    Bonjour,
    Je cherche à réunir les informations de différentes tables dans un même formulaire. Toutes ces tables sont reliées par un champ : "num_collection". Je voudrais donc qu'une fois le numéro de collection choisi, il soit affiché par défaut les informations correspondant à ce numéro dans différentes zones de texte.
    Voici le code que j'ai fait pour afficher le dernier numéro entré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Private Sub Texte0_BeforeUpdate(Cancel As Integer)
        Dim lngDerID As Long
        lngDerID = DMax("num_collection", "desc_espece")
        Texte0.Value = lngDerID
    End Sub
    J'avoue que je débute en VBA même si j'ai des bonnes bases dans d'autres languages de programmation.
    Merci de votre aide.

  2. #2
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 911
    Points : 1 367
    Points
    1 367
    Par défaut
    Si je comprends ce que tu veux faire:
    1) L'utilisateur introduit un num_collection,
    2) tu recherches des données de plusieurs tables sur base de ce numéro,
    3) ces valeurs deviennent les valeurs par défaut de ta forme

    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
    Private Sub num_collection_AfterUpdate()
        ' 1)+2) Le numéro a été mis à jour on recherche les valeurs dans d'autres tables
        myset=currentdb.openrecordset(un_ordre_sql)
     
        if (not(myset.EOF)) then
            ' 3) des données ont été trouvées, on les utilise comme valeurs par défaut
            myset.MoveFirst
            me.text0.defaultvalue=myset!text0
            me.text1.defaultvalue=myset!text1
            me.text2.defaultvalue=myset!text2
            ...
     
        Else
            ' Pas trouvé faire autre jour
            endif
     
    End sub

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 101
    Points : 66
    Points
    66
    Par défaut
    Je vais voir si cela fonctionne.
    En fait ce n'est pas l'utilisateur qui va rentrer le numéro de collection mais je voudrais qu'automatiquement à l'ouverture du formulaire, ce soit le dernier numéro qui soit rentrer.
    Je suppose que c'est la même procédure mais comment faire l'UPDATE de ce champ ?
    Merci d'avance

  4. #4
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 911
    Points : 1 367
    Points
    1 367
    Par défaut
    Tu te poser comme question: qu'est ce qui va déclencher la mise à jour du champs ? L'ouverture, la sauvegarde du record en cours, ....


    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    'récupération des valeurs par défaut à l'ouverture la forme
    Private Sub Form_Open()
        GetID()
    End Sub
     
    'récupération des valeurs par défaut après validation du record en cours
    Private Sub form_AfterUpdate()
        GetID()
    End Sub
     
    Private Sub GetId()
        ' 1) récupérer le dernier ID
        Dim lngDerID As Long
        lngDerID = DMax("num_collection", "desc_espece")
        Texte0.Value = lngDerID
     
        ' 2) Rechercher les valeurs dans d'autres tables
        myset=currentdb.openrecordset(un_ordre_sql)
     
        if (not(myset.EOF)) then
            ' 3) des données ont été trouvées, on les utilise comme valeurs par défaut
            myset.MoveFirst
            me.text0.defaultvalue=myset!text0
            me.text1.defaultvalue=myset!text1
            me.text2.defaultvalue=myset!text2
            ...
     
        Else
            ' Pas trouvé faire autre chose
            endif
     
    End sub
    Dernière remarque: je te suggère d'utiliser "text0.DefaultValue" plutôt que "text0.Value" car mettre une valeur dans "Value" bascule ton record en mode édition, alors que "DefaultValue" permet de proposer une valeur par défaut.
    La propriété "DefautValue" est requiert cependant un formatage un peu spéciale. Regarde ce post ici.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 101
    Points : 66
    Points
    66
    Par défaut
    Merci pour toutes ces informations :
    Voilà ce que j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub formulaire_Open()
        Dim lngDerID As Long
        lngDerID = DMax("num_collec", "desc_espece")
        Texte0.DefaultValue = lngDerID
        MAJ (lngDerID)
    End Sub
    Lorsque j'ouvre mon formulaire tout se met à jour parfaitement sauf la valeur Texte0.DefaultValue qui a un curseur qui clignote dedans à la place...
    Merci pour ton aide et tes conseils

  6. #6
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 911
    Points : 1 367
    Points
    1 367
    Par défaut
    Heureux que ça fonctionne.
    Pense au tag "Résolu" alors.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 101
    Points : 66
    Points
    66
    Par défaut Pas tout à fait résolu
    En fait, je me rend compte que je n'ai pas été assez précise dans mon précédent mail.
    Lors de l'ouverture du formulaire, tous les champs sont mis à jour sauf celui du numéro de collection où le curseur se place automatiquement dans une cellule vide. Est-ce normal ?

  8. #8
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 911
    Points : 1 367
    Points
    1 367
    Par défaut
    JE crois qu'il va falloir que tu reprécises ce que tu veux faire !!


    Tu as une forme liée à un query réunissant des données de plusieurs tables.
    Quand tu ouvres la forme, tu souhaites que le dernier record te soit affiché.

    Est-ce bien ça ?

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 101
    Points : 66
    Points
    66
    Par défaut
    Je veux que lors de l'ouverture du formulaire s'affiche les informations liées au dernier numéro de collection entré.
    Apparement le code cité au-dessus fonctionne parfaitement vu que toutes les cases de mon formulaire se mettent à jour SAUF une!
    C'est celle qui est censé contenir "lngDerId". En effet le curseur vient se positionner par défault dans cette case effaçant la valeur inscrite.

  10. #10
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    911
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 911
    Points : 1 367
    Points
    1 367
    Par défaut
    J'avoue ne pas bien comprendre qu'est qui guide quoi !!!!
    Attache ta db, je regarderai ce soir.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 101
    Points : 66
    Points
    66
    Par défaut
    J'ai plusieurs tables qui sont reliées entre elles par un numéro de collection : une table pour les caractéristiques sexuelles de l'animal, une pour les espèces, une pour l'âge.
    J'ai donc fait un formulaire rassemblant ces différentes informations afin de permettre à l'utilisateur de pouvoir vérifier les données qu'il a rentré dans chaque table séparément.
    Je souhaiterai donc qu'à l'ouverture de mon formulaire la dernière entrée soit affichée.
    Pour cela j'ai créé une procédure de mise à jour qui prend en entrée le numéro de collection et qui met à jour tous les autres champs du formulaire.
    J'ai donc un problème sur ma fonction d'Ouverture de formulaire car je n'arrive pas à obtenir l'affichage automatique de la dernière entrée. Par contre ma procédure de mise à jour fonctionne car si je rentre manuellement une entrée alors la mise à jour s'effectue parfaitement.
    Je joins ma base de donnée pour plus de clareté.
    Fichiers attachés Fichiers attachés

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 101
    Points : 66
    Points
    66
    Par défaut
    J'ai réussi à me débattre avec la fonction Open du formulaire donc c'est reglé.
    Merci pour le coup de main.

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 10/01/2012, 21h40
  2. Selection par défaut dans un formulaire
    Par AlKoLiK dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 02/05/2008, 23h10
  3. Réponses: 4
    Dernier message: 23/04/2007, 11h02
  4. Réponses: 1
    Dernier message: 10/02/2007, 13h44
  5. Réponses: 11
    Dernier message: 13/09/2006, 10h56

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