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 31/01/2012, 17h28   #1
Membre du Club
 
bonero pross
Inscription : janvier 2010
Messages : 160
Détails du profil
Informations personnelles :
Nom : bonero pross

Informations forums :
Inscription : janvier 2010
Messages : 160
Points : 58
Points : 58
Par défaut ControlSource d’un textbox avec une formule.

Bonjour tout le monde,

J’ai une table (Customers) qui contient 3 champs :
• LastName qui contient les noms de famille,
• FirstName qui contient les prenoms
• UserCode qui doit concateter le LastName et le FirstName.

La table est reliee a un formulaire (Customers_frm) qui permet a son utilisateur d’inserrer ou modifier son contenu.

Le formulaire contient egalement 3 textbox :
• LastName qui permet de modifier/inserrer le nom dans la table
• FirstName qui est relie aux champs de FirstName de la table Customers.
• UserCode qui doit normallement concatener LastName et FirstName. La propriete ControlSource du textbox contient la formule suivante qui marche tres bien au niveau du formulaire.

Code :
=Forms!Customers_frm!LastName+Forms!Customers_frm!FirstName
Mon probleme est que le resulat de la formule ne se reflete pas dans le champs UserCode de ma table (Customers) quand je sauvegarde mes modif/actualisations. la propriete ControlSource des textbox LastName et FirstName contiennent respectivement LastName et FirstName et marchent a souhait.

Si par exemple l’utilisateur saisi dans le formulaire LeLoup(LastName) et Jerome(FirstName) , je veux que LeLoupJerome apparaisse dans le textbox UserCode et qu’ a l’enregistrement LeLoupJerome se reflete egalement dans la table Customers.

Merci de m’aider.


Bonero.
Bonero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 18h40   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 479
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 479
Points : 7 568
Points : 7 568
Premièrement je t'invite à ajouter un champ ClefPersonne (numéro auto) qui va te permettre de distinguer les gens qui porte le même nom et le même prénom. Après tu te sers de ClefPersonne partout où tu as besoin d'indentifier la personne.

Ensuite pourquoi as-tu besoin de mémoriser ce code ?

Doit-il pouvoir être modifier (autrement qu'en changeant le nom ou le prénom) ?

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 19h37   #3
Membre du Club
 
bonero pross
Inscription : janvier 2010
Messages : 160
Détails du profil
Informations personnelles :
Nom : bonero pross

Informations forums :
Inscription : janvier 2010
Messages : 160
Points : 58
Points : 58
salut Rene.
Merci pour ta reponse.
Je suis tout a fait d’accord avec toi pour la clef ClefPersonne. Je sais tres bien qu’il est fortement deconseille d’utiliser des champs de type TEXT pour identifier les enregisrements.

Je veux simplement comprendre le mecanisme/relation entre le formulaire et la table a laquelle il est rattache au travers de la propriete ControlSource.
J’ai pris cet exemple parce qu’il est tres simple a expliquer meme si il n’illustre pas une bonne pratique.

Stp ou est ce que je pourrais placer ma formule ou une autre formule afin d’obtenir le resultat escompte.

Merci de me repondre
Bonero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 20h56   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 479
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 479
Points : 7 568
Points : 7 568
Ok on ne peut pas faire ce que tu demandes comme tu veux le faire.

Le plus simple pour y arriver est de mettre dans l'événement Après MAJ de Nom et Après MAJ de prénom.

Code :
1
2
3
private sub MAJ_NomPrenom()
   me.NomPrenom=me.nom & " " & me.prenom
end sub
dans Après MAJ Nom :

dans Après MAJ Prenom :

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/01/2012, 20h57   #5
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 479
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 479
Points : 7 568
Points : 7 568
Le RecordSource comme tu l'utilises ne sert que quand tu veux faire des calculs locaux à ton formulaire mais pas pour 'écrire' des données dans la table.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 11h59   #6
Membre du Club
 
bonero pross
Inscription : janvier 2010
Messages : 160
Détails du profil
Informations personnelles :
Nom : bonero pross

Informations forums :
Inscription : janvier 2010
Messages : 160
Points : 58
Points : 58
Bonjour et merci pour ta reponse,

Tu as omis de preciser que je dois egalement mettre dans la propriete de ControlSource de UserCode

J’ai utilise tes codes et cela marche tres bien.
Je dois avouer que j’ai vraiment du mal a comprendre comment marche la propriete ControlSource. En plus de cela la difference entre ControlSource et RowSource n’est pas tres claire.
Bonero est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2012, 15h27   #7
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 479
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 479
Points : 7 568
Points : 7 568
Citation:
Tu as omis de preciser que je dois egalement mettre dans la propriete de ControlSource de UserCode
Exact ... mais c'était pour voir si tu suivais :-))).

À vrai dire je ne me suis jamais intéroger sur le fonctionnement, cela crée un lien direct avec le champ dans la source de données il me parait donc logique que tu ne puisses pas faire un calcul à cet endrois là.

Si ta question est résolu, appuis sur le bouton "résolu" en bas des messages.

A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



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


 
 
 
 
Partenaires

Hébergement Web