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 :

mettre un champ comme valeur par défaut


Sujet :

IHM

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut mettre un champ comme valeur par défaut
    Bonsoir,

    Dans un formulaire, est-il possible d'attribuer une valeur par défaut à un champ qui serait la valeur d'un autre champ ?

    explication :

    soit un formulaire F_client qui contient un champ [Raison_social_client].

    sur ce formulaire il y a un bouton qui ouvre un formulaire F_site qui contient entres autres le champ [Enseigne]

    vous l'aurez compris, par défaut, [Enseigne] = [raison_social_client] et c'est justement cela que je cherche à faire.

    Sachant que le champ [Enseigne] pourra être modifié.

    quelqu'un pourrait-il m'aider

    merci

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir
    IL faut étoffer le code évènementiel de ton bouton en faisant par exemple ceci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Private Sub Ton bouton_Click()
    Dim MaValeur as Variant 'j'ai mis Variant parce que je ne sais pas de quel type est ton champ.
    MaValeur = Me.TaZonedeTexteFclient.Value
    DoCmd.OpenForm.........'(ouverture de ton formulaire)
    Form_Fsite.TaZoneEnseigne.Value = MaValeur
    End Sub
    A adapter bien sûr en fonction de tes contrôles...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    Salut GAYOT,

    j'ai modifié mon code avec les éléments que tu m'as donné et ça marche : c'est à dire que le champ Enseigne_site se remplit automatiquement à l'ouverture du formulaire F_siteclient.

    Cependant, je voudrais que ça le remplisse à la première ouverture du formulaire et seulement à la première, mais je ne veut pas qu'il le remplisse à chaque ouverture car c'est un champ qui est amené à être modifié par l'utilisateur.

    Avec ce code, à chaque fois que j'ouvre le formulaire B]F_siteclient[/B], il remplace la valeur du champ Enseigne_site par la valeur du champ raison_social_client alors que l'enseigne peut parfois être différente de la raison sociale.

    est-ce qu'il n'y aurait pas un truc pour stopper la modification après la première ouverture ?

    voici le code modifié :
    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
    Private Sub ouvsites_Click()
    On Error GoTo Err_ouvsites_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
        Dim MaValeur As String
        stDocName = "F_siteclient"
        MaValeur = Me.Raison_social_client.Value
     
        stLinkCriteria = "[id_client]=" & Me![id_client]
        Me.Refresh
        DoCmd.OpenForm stDocName, , , stLinkCriteria
        Forms(F_siteclient).Enseigne_site.Value = MaValeur
     
    Exit_ouvsites_Click:
        Exit Sub
     
    Err_ouvsites_Click:
        MsgBox Err.Description
        Resume Exit_ouvsites_Click
     
    End Sub
    merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour
    En fait tu veux que cette procédure fonctionne la première fois donc quand le champ Enseigne_site est vide. Tu peux donc mettre une condition supplémentaire en te basant sur la valeur Null ou non de cette zone.
    Si elle est vide tu copies, sinon tu ne copie pas....
    Je pense que ça répond à ta question.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par GAYOT Voir le message
    Bonjour
    En fait tu veux que cette procédure fonctionne la première fois donc quand le champ Enseigne_site est vide. Tu peux donc mettre une condition supplémentaire en te basant sur la valeur Null ou non de cette zone.
    Si elle est vide tu copies, sinon tu ne copie pas....
    Je pense que ça répond à ta question.
    c'est exact

    je vais essayer de trouver cela.

    au fait, quel est la fonction ou la macro qui convienne le mieux pour que le champ Enseigne_site se remplisse tout de suite sans avoir besoin de fermer et de ré-ouvrir le formulaire F_site à chaque fois.

    merci

  6. #6
    Invité
    Invité(e)
    Par défaut
    Dans ce cas essaies une requête de mise à jour de ta table, avec comme critère comme évoqué ci dessus, ton champ Enseigne à NUll ou Non.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    Salut,

    J'ai trifouillé un peu et j'ai mis le code suivant :
    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
    Private Sub ouvsites_Click()
    On Error GoTo Err_ouvsites_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
        Dim res As Recordset
        Set db = CurrentDb()
     
        stDocName = "F_siteclient"
     
     
        stLinkCriteria = "[id_client]=" & Me![id_client]
     
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
        Set res = db.OpenRecordset("UPDATE T_site SET T_site.Enseigne_site = [Raison_social_client] WHERE (((T_site.Enseigne_site) Is Null));")
     
     
    Exit_ouvsites_Click:
        Exit Sub
     
    Err_ouvsites_Click:
        MsgBox Err.Description
        Resume Exit_ouvsites_Click
     
    End Sub
    mais ça ne fonctionne pas!!!

    pourrais tu m'aider svp

    merci

  8. #8
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    salut Eric26 et GAYOT,

    les valeurs par défaut sont utilisées en général en mode ajout.
    es ce le cas ?

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par vodiem Voir le message
    salut Eric26 et GAYOT,

    les valeurs par défaut sont utilisées en général en mode ajout.
    es ce le cas ?
    Requête ajout ? : Je ne sais pas.

    Admettons : et comment procéder

    merci

  10. #10
    Expert confirmé
    Avatar de vodiem
    Homme Profil pro
    Vivre
    Inscrit en
    Avril 2006
    Messages
    2 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Vivre
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 895
    Points : 4 325
    Points
    4 325
    Par défaut
    tu ouvres le formulaire en mode ajout:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenForm "F_site", , , , acFormAdd
    et dans le controle [Enseigne] propriété 'Valeur par défaut' le bouton '...' tu vas rechercher dans ton formulaire F_client le champ [Raison_social_client].
    soit valeur par défaut:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =[Formulaires]![F_client]![Raison_social_client]
    à l'ouverture de ton formulaire en mode ajout et uniquement en ajout, il remplira automatiquement le champ avec celui du formulaire.

    es ce le but recherché ?

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    En fait, je souhaite que, par défaut, le champ Enseigne_site soit égal au champ Raison_social_client, et ceci, à l'ouverture du formulaire F_siteclient.

    Mais une fois cela fait, je souhaite que l'utilisateur puisse modifier le champ Enseigne_site.

    En fait, c'est vraiment juste pour ne pas avoir à recopier à chaque fois la valeur du champ Raison_social_client dans le champ Enseigne_site.

    la solution de GAYOT me paraît intéressante, mais je ne vois pas comment la transcrire en code.

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    Salut,

    J'ai mis ce code pour arriver à mes fins, à savoir, mettre une valeur par défaut à un champ :le problème c'est qu'il me met comme message "trop peu de paramètre, 2 attendu"

    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
    33
    34
    Private Sub ouvsites_Click()
    On Error GoTo Err_ouvsites_Click
     
        Dim stDocName As String
        Dim stLinkCriteria As String
        Dim StrSql As String
        Dim Req As QueryDef
     
        Set db = CurrentDb()
     
        stDocName = "F_siteclient"
     
     
        stLinkCriteria = "[id_client]=" & Me![id_client]
     
        DoCmd.OpenForm stDocName, , , stLinkCriteria
     
        StrSql = "UPDATE T_site" & _
        " SET Forms!F_siteclient!Enseigne_site = T_client.Raison_social_client" & _
        " WHERE Forms!F_siteclient!Enseigne_site Is Null;"
     
     
        Set Req = CurrentDb.CreateQueryDef("", StrSql)
        Req.Execute dbFailOnError
     
     
    Exit_ouvsites_Click:
        Exit Sub
     
    Err_ouvsites_Click:
        MsgBox Err.Description
        Resume Exit_ouvsites_Click
     
    End Sub
    Est-ce que vous pouvez m'expliquez d'où ça peu provenir ?

    Merci

  13. #13
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Bonjour Eric26,

    Je crois que le code écrit par GAYO resoud ton problème, il suffit tout simplement de modifier la 4è ligne en .Defaultvalue (au lieu de .value).

    Bon courage.

  14. #14
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par rfnman Voir le message
    Bonjour Eric26,

    Je crois que le code écrit par GAYO resoud ton problème, il suffit tout simplement de modifier la 4è ligne en .Defaultvalue (au lieu de .value).

    Bon courage.
    Salut rfnman,

    J'ai modifié le code comme tu me l'as conseillé et, à l'ouverture du formulaire F_site, le champ Enseigne_site (celui qui est censé se remplir automatiquement) affiche #Nom?.

    Y'a peut-être un truc qu'on a oublié.

    En tout cas, merci pour ton post.

  15. #15
    Futur Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Bonjour Eric26 et le forum,

    Y'a peut-être un truc qu'on a oublié.
    Essaie de voir le lien suivant en regardant la réponse de LedZeppII sur les valeurs par défaut:
    http://www.developpez.net/forums/d10...mbole-decimal/

    Peut-être qu'avec ça, tu pourras, au moins connaître la propriété du ".DefaultValue".

    Merci

  16. #16
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    190
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 190
    Points : 72
    Points
    72
    Par défaut
    j'ai regardé dans le lien et y'a rien qui puisse m'aider.

    dans l'exemple, il est question de valeurs numériques, alors que j'ai des champs de type text.

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/12/2013, 10h18
  2. Réponses: 1
    Dernier message: 21/10/2011, 18h38
  3. Réponses: 2
    Dernier message: 22/02/2008, 10h54
  4. Réponses: 2
    Dernier message: 27/09/2006, 18h07
  5. Réponses: 1
    Dernier message: 20/04/2006, 12h46

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