Concatenation et clé primaire
Résolu/Fermé
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
-
5 mai 2012 à 18:53
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 - 15 mai 2012 à 23:25
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 - 15 mai 2012 à 23:25
A voir également:
- Clé primaire concaténée
- 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
11 réponses
OlivrT
Messages postés
323
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
24 mai 2012
36
6 mai 2012 à 00:42
6 mai 2012 à 00:42
Bonjour,
lorsque vous avez construit votre clé primaire, votre table contenait déjà des données je parie non ? Car dans ce cas vous avez raison (sauf sur le Null)
Pour que cela fonctionne,il faut au départ que la table soit vide.
Créer une table, avec un champ "ID", vous ne choisissez pas "Numéro auto" mais une valeur numérique ou de type texte et vous définissez ce champ comme étant la clé primaire.
Remplissez la table et vous verrez que cela fonctionne très bien.
Si vous ne pouvez pas partir d'une table vide, il suffit de définir votre champ comme "unique", cela aura le même effet que la clé primaire.
lorsque vous avez construit votre clé primaire, votre table contenait déjà des données je parie non ? Car dans ce cas vous avez raison (sauf sur le Null)
Pour que cela fonctionne,il faut au départ que la table soit vide.
Créer une table, avec un champ "ID", vous ne choisissez pas "Numéro auto" mais une valeur numérique ou de type texte et vous définissez ce champ comme étant la clé primaire.
Remplissez la table et vous verrez que cela fonctionne très bien.
Si vous ne pouvez pas partir d'une table vide, il suffit de définir votre champ comme "unique", cela aura le même effet que la clé primaire.
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
217
6 mai 2012 à 08:16
6 mai 2012 à 08:16
bonjour
Merci de ton aide.
Cela ne fonctionne pas.
Clé primaire, champ1 et champ2 sont numerique.
Mon formulaire est basé sur la requete de concaténation.
Lorsque les champs 1 et 2 sont remplis, la concaténation se fait bien, champ primaire se rempli mais c'est a ce moment que j'ai ce fameux message d'erreurs.
Au départ ma table est vide.
Merci de ton aide.
Cela ne fonctionne pas.
Clé primaire, champ1 et champ2 sont numerique.
Mon formulaire est basé sur la requete de concaténation.
Lorsque les champs 1 et 2 sont remplis, la concaténation se fait bien, champ primaire se rempli mais c'est a ce moment que j'ai ce fameux message d'erreurs.
Au départ ma table est vide.
OlivrT
Messages postés
323
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
24 mai 2012
36
8 mai 2012 à 23:44
8 mai 2012 à 23:44
Quel est ce message d'erreur ?
Petit truc pour éviter le problème d'une valeur Null avec une autre, il suffit d'ajouter à côté une zone vide :
txtChamp1 & "" & txtChamp2 & ""
Petit truc pour éviter le problème d'une valeur Null avec une autre, il suffit d'ajouter à côté une zone vide :
txtChamp1 & "" & txtChamp2 & ""
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
217
9 mai 2012 à 16:07
9 mai 2012 à 16:07
Bonjou
Un index ou une cle primaire ne peut contenir une valeur Nul
Voila pour le message d'erreur
Ma ligne de contatenation
NomClePrimaire: [Champ1]&""&[champ2]
pour toi il faudrait ecrire
NomClePrimaire: [Champ1]&""&[champ2] & ""
mais cela ne fonctionne pas
Un index ou une cle primaire ne peut contenir une valeur Nul
Voila pour le message d'erreur
Ma ligne de contatenation
NomClePrimaire: [Champ1]&""&[champ2]
pour toi il faudrait ecrire
NomClePrimaire: [Champ1]&""&[champ2] & ""
mais cela ne fonctionne pas
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
OlivrT
Messages postés
323
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
24 mai 2012
36
9 mai 2012 à 23:49
9 mai 2012 à 23:49
Si Access détecte une valeur Null c'est que la concaténation des champs 1 et 2 est une valeur Null, y a pas photo
Il faut déboguer et vérifier les valeurs avant la mise à jour.
Pour cela vous allez utiliser l'évènement Before_Update (Avant MAJ) :
Je ne connais pas les noms des champs dans le formulaire, je les appellerai donc txtChamp1 pour la valeur du Champ1 et txtChamp2 pour la valeur du Champ2 :
Sub Before_Update(Cancal as Integer)
If IsNull(txtChamp1) Then
MsgBox "Attention le champ txtChamp1 est Null !"
Cancel = True 'Abandonner la mise à jour
End If
If IsNull(txtChamp2) Then
MsgBox "Attention le champ txtChamp2 est Null !"
Cancel = True
End If
End Sub
Essayez ça.
Il faut déboguer et vérifier les valeurs avant la mise à jour.
Pour cela vous allez utiliser l'évènement Before_Update (Avant MAJ) :
Je ne connais pas les noms des champs dans le formulaire, je les appellerai donc txtChamp1 pour la valeur du Champ1 et txtChamp2 pour la valeur du Champ2 :
Sub Before_Update(Cancal as Integer)
If IsNull(txtChamp1) Then
MsgBox "Attention le champ txtChamp1 est Null !"
Cancel = True 'Abandonner la mise à jour
End If
If IsNull(txtChamp2) Then
MsgBox "Attention le champ txtChamp2 est Null !"
Cancel = True
End If
End Sub
Essayez ça.
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
217
10 mai 2012 à 10:18
10 mai 2012 à 10:18
Bonjour
Merci pour ton aide
Voici un lien d'un exemple pour utiliser le principe de concaténation sur un clé primaire.
Dans le formulaire issu de la requete, j'inscris une date que me transforme en N°jours. J'inscris IdDate
Le resultat s'affiche dans N°List
Lorsque je veux faire un 2eme enregistrement message d'erreur.
Voic le lien
https://www.cjoint.com/?BEkkkU3qEAK
Merci pour ton aide
Voici un lien d'un exemple pour utiliser le principe de concaténation sur un clé primaire.
Dans le formulaire issu de la requete, j'inscris une date que me transforme en N°jours. J'inscris IdDate
Le resultat s'affiche dans N°List
Lorsque je veux faire un 2eme enregistrement message d'erreur.
Voic le lien
https://www.cjoint.com/?BEkkkU3qEAK
OlivrT
Messages postés
323
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
24 mai 2012
36
13 mai 2012 à 10:43
13 mai 2012 à 10:43
Voilà, envoyez moi votre adresse e-mail et je vous renvoie la base corrigée avec un formulaire en exemple.
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
217
Modifié par castours le 13/05/2012 à 19:09
Modifié par castours le 13/05/2012 à 19:09
Bonjour
Je vous remercie et j'attends votre email.
Voila mon adresse
gc_turon@@Club-internet.fr
Je vous remercie et j'attends votre email.
Voila mon adresse
gc_turon@@Club-internet.fr
OlivrT
Messages postés
323
Date d'inscription
lundi 2 novembre 2009
Statut
Membre
Dernière intervention
24 mai 2012
36
14 mai 2012 à 22:43
14 mai 2012 à 22:43
C'est fait.
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
217
15 mai 2012 à 18:51
15 mai 2012 à 18:51
Bonjour
Je te remercie pour l'aide.
Maintenant peux tu m'expliquer pour realiser le principe dans une autre base de données?
J'ai bien vu que N°List a étè modifié en texte et indexé sans doublons.
La Concaténation se fait comment.?
Je te remercie pour l'aide.
Maintenant peux tu m'expliquer pour realiser le principe dans une autre base de données?
J'ai bien vu que N°List a étè modifié en texte et indexé sans doublons.
La Concaténation se fait comment.?
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
217
15 mai 2012 à 23:25
15 mai 2012 à 23:25
Bonjour
C'est Ok , j'ai tout trouvé.
merci cela fonctionne
c'est une astuce a connaitre
C'est Ok , j'ai tout trouvé.
merci cela fonctionne
c'est une astuce a connaitre
DROE
Messages postés
148
Date d'inscription
mardi 5 mai 2009
Statut
Membre
Dernière intervention
26 juillet 2012
48
15 mai 2012 à 22:07
15 mai 2012 à 22:07
Hello Castours,
Mon intervention ne ressoudera pas ton problème de concaténation.
Simplement pour dire que je vois beaucoup de post à ce sujet un peu partout sur la toile.
A propos d'une clé primaire, elle doit être complètement indépendante des données métier, donc non issue de concaténation ou de valeurs provenant d'une ligne. Les clés étrangères s'appuient sur les clés primaires pour établir les relations entre les tables de la base de données. Que se passe t-il le jour ou les valeurs de colonnes qui ont servi à créer la clé primaire doivent changer ? La base de données s'écroule...?
DROE
Mon intervention ne ressoudera pas ton problème de concaténation.
Simplement pour dire que je vois beaucoup de post à ce sujet un peu partout sur la toile.
A propos d'une clé primaire, elle doit être complètement indépendante des données métier, donc non issue de concaténation ou de valeurs provenant d'une ligne. Les clés étrangères s'appuient sur les clés primaires pour établir les relations entre les tables de la base de données. Que se passe t-il le jour ou les valeurs de colonnes qui ont servi à créer la clé primaire doivent changer ? La base de données s'écroule...?
DROE
castours
Messages postés
2955
Date d'inscription
lundi 18 septembre 2006
Statut
Membre
Dernière intervention
31 août 2019
217
15 mai 2012 à 23:18
15 mai 2012 à 23:18
Bonjour
Merci de ta participation.
Les données sont issues du N°du jour de l'année sur la saisie d'une date aprés extration.
Le 2eme est la clé secondaire de mon formulaire principale
La concaténation forme la clé primaire des enregistrement de mon sous formulaire.
Donc je crois qu'il ne devrait pas avoir de probleme par la suite.
Merci de ta participation.
Les données sont issues du N°du jour de l'année sur la saisie d'une date aprés extration.
Le 2eme est la clé secondaire de mon formulaire principale
La concaténation forme la clé primaire des enregistrement de mon sous formulaire.
Donc je crois qu'il ne devrait pas avoir de probleme par la suite.