Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > IHM
IHM Ce forum est dédié aux questions relatives à la création de formulaires et d'états, avec ou sans code VBA, et macros.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/12/2010, 21h04   #1
Membre à l'essai
 
Inscription : mars 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 151
Points : 24
Points : 24
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
Eric26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/12/2010, 21h21   #2
Rédacteur/Modérateur
 
Avatar de GAYOT
 
Homme Jean-Damien GAYOT
Inscription : novembre 2004
Messages : 2 071
Détails du profil
Informations personnelles :
Nom : Homme Jean-Damien GAYOT
Âge : 56
Localisation : France, Meuse (Lorraine)

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : novembre 2004
Messages : 2 071
Points : 4 382
Points : 4 382
Envoyer un message via Skype™ à GAYOT
Bonsoir
IL faut étoffer le code évènementiel de ton bouton en faisant par exemple ceci.
Code :
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...
__________________
Plus j'avance et plus j'ai l'impression de ne rien savoir. Et comme j'essaie d'aller loin..!!.

Tutoriels sur:http://jdgayot.developpez.com

Pas de sujets techniques par Mp. Sinon
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 09h53   #3
Membre à l'essai
 
Inscription : mars 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 151
Points : 24
Points : 24
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 :
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
Eric26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 10h22   #4
Rédacteur/Modérateur
 
Avatar de GAYOT
 
Homme Jean-Damien GAYOT
Inscription : novembre 2004
Messages : 2 071
Détails du profil
Informations personnelles :
Nom : Homme Jean-Damien GAYOT
Âge : 56
Localisation : France, Meuse (Lorraine)

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : novembre 2004
Messages : 2 071
Points : 4 382
Points : 4 382
Envoyer un message via Skype™ à GAYOT
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.
__________________
Plus j'avance et plus j'ai l'impression de ne rien savoir. Et comme j'essaie d'aller loin..!!.

Tutoriels sur:http://jdgayot.developpez.com

Pas de sujets techniques par Mp. Sinon
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 10h42   #5
Membre à l'essai
 
Inscription : mars 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 151
Points : 24
Points : 24
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
Eric26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/12/2010, 10h48   #6
Rédacteur/Modérateur
 
Avatar de GAYOT
 
Homme Jean-Damien GAYOT
Inscription : novembre 2004
Messages : 2 071
Détails du profil
Informations personnelles :
Nom : Homme Jean-Damien GAYOT
Âge : 56
Localisation : France, Meuse (Lorraine)

Informations professionnelles :
Secteur : Distribution

Informations forums :
Inscription : novembre 2004
Messages : 2 071
Points : 4 382
Points : 4 382
Envoyer un message via Skype™ à GAYOT
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.
__________________
Plus j'avance et plus j'ai l'impression de ne rien savoir. Et comme j'essaie d'aller loin..!!.

Tutoriels sur:http://jdgayot.developpez.com

Pas de sujets techniques par Mp. Sinon
GAYOT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 15h19   #7
Membre à l'essai
 
Inscription : mars 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 151
Points : 24
Points : 24
Salut,

J'ai trifouillé un peu et j'ai mis le code suivant :
Code :
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
Eric26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 15h57   #8
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
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 644
Points : 3 895
Points : 3 895
salut Eric26 et GAYOT,

les valeurs par défaut sont utilisées en général en mode ajout.
es ce le cas ?
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 16h04   #9
Membre à l'essai
 
Inscription : mars 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 151
Points : 24
Points : 24
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
Eric26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 16h21   #10
Expert Confirmé
 
Avatar de vodiem
 
Homme Diem VO
Vivre
Inscription : avril 2006
Messages : 2 644
Détails du profil
Informations personnelles :
Nom : Homme Diem VO
Âge : 40
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 644
Points : 3 895
Points : 3 895
tu ouvres le formulaire en mode ajout:
Code :
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 :
=[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é ?
vodiem est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/12/2010, 16h28   #11
Membre à l'essai
 
Inscription : mars 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 151
Points : 24
Points : 24
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.
Eric26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/12/2010, 10h04   #12
Membre à l'essai
 
Inscription : mars 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 151
Points : 24
Points : 24
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 :
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
Eric26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/12/2010, 13h23   #13
Invité de passage
 
Inscription : décembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 10
Points : 4
Points : 4
Envoyer un message via Yahoo à rfnman
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.
rfnman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2010, 11h20   #14
Membre à l'essai
 
Inscription : mars 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 151
Points : 24
Points : 24
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.
Eric26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/12/2010, 12h55   #15
Invité de passage
 
Inscription : décembre 2010
Messages : 10
Détails du profil
Informations forums :
Inscription : décembre 2010
Messages : 10
Points : 4
Points : 4
Envoyer un message via Yahoo à rfnman
Bonjour Eric26 et le forum,

Citation:
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
rfnman est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/12/2010, 11h38   #16
Membre à l'essai
 
Inscription : mars 2006
Messages : 151
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 151
Points : 24
Points : 24
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.
Eric26 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h01.


 
 
 
 
Partenaires

Hébergement Web