{Access} champ clé concqténé est ce faisable?
Résolu/Fermé
Rhyton le boyar
-
9 déc. 2009 à 07:16
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 - 10 déc. 2009 à 10:49
OlivrT Messages postés 323 Date d'inscription lundi 2 novembre 2009 Statut Membre Dernière intervention 24 mai 2012 - 10 déc. 2009 à 10:49
A voir également:
- {Access} champ clé concqténé est ce faisable?
- Clé windows 10 gratuit - Guide
- Clé usb non détectée - Guide
- Clé bootable windows 10 - Guide
- Clé usb 2to vrai ou faux - Accueil - Stockage
- Cle hdmi tv - Guide
3 réponses
OlivrT
Messages postés
323
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
24 mai 2012
36
9 déc. 2009 à 14:17
9 déc. 2009 à 14:17
Tu parle de l'évenement Avant MAJ non? Oui
Que faudrait il que je mette dedans pour qu'il fasse ce que je veux?
Le nom du contrôle pour lequel la valeur est indispensable dans ta table.
Appelons ce contrôle "txtFKMaTable", tu aurais quelques chose comme :
Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(txtFKMaTable) Then
txtFKMaTable = MaValeur
End If
End Sub
Disons que j'ai par exemple deux tables, une table T_Demande avec comme champ "Code Clt Int" et "Nr Demande" que je concatène pour avoir un "Final Nr D" ce champs devenant ma clé qui est liée avec mise a jour en cascade avec ma deuxième table T_Order-int, ou je retrouve donc mon "Final Nr D" et "Code Buyer" et "Nr Order Int", ce dernier champ étant a son tour la concaténation des deux autre champ de la table 2 et se retrouvant dans la table 3 ...
Si je ne me trompe pas je ne peux pas paramètrer directement dans ma table pour qu'il concatene mes champs, donc je passe par un formulaire. Si ! Vous vous trompez :
1) Aller en mode Design de la table
2) Dans Default value il est possible de mettre une valeur et aussi, une fonction ...
Vous devinez le reste bien entendu, il suffirait de créer une fonction qui retourne cette clé.
Pour être honnête, je pense que vous vous compliquez la vie.
Access peut gérer tout seul les valeurs des Foreign Key en créant un formulaire et un sous-formulaire.
Que faudrait il que je mette dedans pour qu'il fasse ce que je veux?
Le nom du contrôle pour lequel la valeur est indispensable dans ta table.
Appelons ce contrôle "txtFKMaTable", tu aurais quelques chose comme :
Private Sub Form_BeforeUpdate(Cancel As Integer)
If IsNull(txtFKMaTable) Then
txtFKMaTable = MaValeur
End If
End Sub
Disons que j'ai par exemple deux tables, une table T_Demande avec comme champ "Code Clt Int" et "Nr Demande" que je concatène pour avoir un "Final Nr D" ce champs devenant ma clé qui est liée avec mise a jour en cascade avec ma deuxième table T_Order-int, ou je retrouve donc mon "Final Nr D" et "Code Buyer" et "Nr Order Int", ce dernier champ étant a son tour la concaténation des deux autre champ de la table 2 et se retrouvant dans la table 3 ...
Si je ne me trompe pas je ne peux pas paramètrer directement dans ma table pour qu'il concatene mes champs, donc je passe par un formulaire. Si ! Vous vous trompez :
1) Aller en mode Design de la table
2) Dans Default value il est possible de mettre une valeur et aussi, une fonction ...
Vous devinez le reste bien entendu, il suffirait de créer une fonction qui retourne cette clé.
Pour être honnête, je pense que vous vous compliquez la vie.
Access peut gérer tout seul les valeurs des Foreign Key en créant un formulaire et un sous-formulaire.
OlivrT
Messages postés
323
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
24 mai 2012
36
9 déc. 2009 à 09:48
9 déc. 2009 à 09:48
La réponse est oui MAIS c'est inutile. Dans Access tu disposes d'un évènement "Before_Update" dans lequel tu rempliras le champ nécessaire. Dès lors lorsque Access enregistre les données tu n'auras plus le problème, ni de message bien entendu.
Tu parle de l'évenement Avant MAJ non?
Que faudrait il que je mette dedans pour qu'il fasse ce que je veux?
Disons que j'ai par exemple deux tables, une table T_Demande avec comme champ "Code Clt Int" et "Nr Demande" que je concatène pour avoir un "Final Nr D" ce champs devenant ma clé qui est liée avec mise a jour en cascade avec ma deuxième table T_Order-int, ou je retrouve donc mon "Final Nr D" et "Code Buyer" et "Nr Order Int", ce dernier champ étant a son tour la concaténation des deux autre champ de la table 2 et se retrouvant dans la table 3 ...
Si je ne me trompe pas je ne peux pas paramètrer directement dans ma table pour qu'il concatene mes champs, donc je passe par un formulaire.
Là, que dois je remplir, en source controle dans l'onglet donnée, et ensuite dans l'onglet évenement ?
J'ai déjà essayé en source controle de mettre = [Code Clt Int] & [Nr Demande] et ensuite de mettre une macro actualiser dans avant maj mais apparement ça marche pas....
Merci déjà de ta premiere réponse cela confirme déjà que cela doit être faisable,
Que faudrait il que je mette dedans pour qu'il fasse ce que je veux?
Disons que j'ai par exemple deux tables, une table T_Demande avec comme champ "Code Clt Int" et "Nr Demande" que je concatène pour avoir un "Final Nr D" ce champs devenant ma clé qui est liée avec mise a jour en cascade avec ma deuxième table T_Order-int, ou je retrouve donc mon "Final Nr D" et "Code Buyer" et "Nr Order Int", ce dernier champ étant a son tour la concaténation des deux autre champ de la table 2 et se retrouvant dans la table 3 ...
Si je ne me trompe pas je ne peux pas paramètrer directement dans ma table pour qu'il concatene mes champs, donc je passe par un formulaire.
Là, que dois je remplir, en source controle dans l'onglet donnée, et ensuite dans l'onglet évenement ?
J'ai déjà essayé en source controle de mettre = [Code Clt Int] & [Nr Demande] et ensuite de mettre une macro actualiser dans avant maj mais apparement ça marche pas....
Merci déjà de ta premiere réponse cela confirme déjà que cela doit être faisable,
OlivrT
Messages postés
323
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
24 mai 2012
36
10 déc. 2009 à 10:49
10 déc. 2009 à 10:49
Mais ce n'est pas parce que avant un gars à fait n'importe quoi qu'il faut continuer ... J'ai vu cela des dizaines de fois et à chaque fois que j'ai expliqué à mon client le bien fondé de re-partir sur une bonne base, jamais aucun ne s'y est opposé. D'autant plus que le ou les développeurs qui passeront derrière gagneront en temps aussi et le client y gagnera en argent ... ;-)
Merci de clôturer le call en statut résolut
Merci de clôturer le call en statut résolut
10 déc. 2009 à 10:12
Je suis un peu novice en BDD et en programmation, je suis d'accord avec toi quand au clé de manière générale mais je dois partir d'une base existante en terme de process et de codification au long du process d'ou ma demande quand à ces possibilité de concaténation, merci en tout cas de tes réponses et du temps que tu m'a accordé,
Rhyton