MsgBox si information déjà rentrée (doublon)

olivierporcinet Messages postés 13 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 25 mai 2023 - Modifié le 23 mai 2023 à 14:24
olivierporcinet Messages postés 13 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 25 mai 2023 - 25 mai 2023 à 08:56

Bonjour,

Dans ma table, la clé primaire est sur le nom de la personne. [Nom]

Autre champ : [N°]


J'aimerais avoir une MsgBox si le même n° est déjà encodé. (cela servirait de 2ème clé ....)

Pour info, ma table : Jeune

Mon champ : [N°] --> en valeur numérique

L'idéal est d'avoir un code en BeforeUpdate.

Merci
Windows / Chrome 88.0.4324.146

12 réponses

blackmefias_3350 Messages postés 706 Date d'inscription dimanche 20 septembre 2020 Statut Membre Dernière intervention 8 mars 2024 58
23 mai 2023 à 14:54

Bonjour, 

Je ne comprends pas pourquoi et dans quel but vous avez mis une clé primaire sur un champ texte. 

Normalement une clé primaire se met sur un champs ID de type numérique Entier (integer) . C'est ce Numéro qui permet de faire des recherches, tris, etc...sur les données au quel il est assigné.  Il est en général NumeroAuto  ou incrémenté de cette façon les données suivantes auront par exemple le numéro ID  2 puis 3 ainsi de suite jusqu'à la fin de la table. 

Par contre,  vous pouvez mettre dans une autre table le même nom ID  mais comme type de données vous devez mettre  numérique  sans  y mettre de clé primaire sur ce champ.  Ainsi vous pouvez lié ces deux tables.  Exemple  table clients  et  table factures. 

Si je comprends votre soucis, c'est qu'un nom ne peut être qu'une et seule fois inscrit dans votre table .  Donc si  Tartempion Michèl et Tartempion Marcel sont dans votre table,  vous voudriez mettre un message en disant que la table contient un doublon.  Pourtant,  ces deux personnes ne sont pas les mêmes. 


0
olivierporcinet Messages postés 13 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 25 mai 2023
Modifié le 23 mai 2023 à 15:13

C'est voulu une clé primaire sur le nom.

De plus, je travaille avec 2 formulaires (avec une liste déroulante du nom dans le 2ème formulaire).

Si je change la clé primaire, cela ne fonctionne plus, je n'ai plus de possibilité de liste déroulante dans l'autre formulaire.

0
blackmefias_3350 Messages postés 706 Date d'inscription dimanche 20 septembre 2020 Statut Membre Dernière intervention 8 mars 2024 58
Modifié le 23 mai 2023 à 15:56

Je travaille sur une table qui contient des codes postaux cette table est indépendante du reste de ma basé donné es.  Les champs sont les suivants:

  • Numéro  ( indentifiant,  ???? )
  •  CodePos  (contient les codes postaux) 
  • Commune( contient le nom des communes) 
  • CommuneMin ( même chose que commune ' mais minimum) 

Dans plusieurs formulaires,  j utilise les champs de cette table (code postaux)  .  Ces champs sont des listes déroulantes  Independantes  qui sont liées sur CodeLocalite il faut trois liste déroulante par formulaire.

Une pour le numéro ID, elle sera sur visible :non dans les paramètres  

Une deuxième pour afficher uniquement les codes postaux. Dans les paramètres on met le nombre de Colonne sur 3 et largeur de Colonne sur 0cm; 3cm;3cm.

Même chose pour le troisième si ce n est que largeur de colonne est lui sur 0cm;0cm;3cm. 

Ainsi, lorsque j utilise la deuxième ou troisième liste, cela l'affiche pour la deuxième  le code postal et le nom de la commune  et pour la troisième liste cela affiche uniquement les communes. 

CodeLocalite est un champ qui se retrouve par exemples dans ma tables clients, fournisseurs, et toutes les autres table ou j ai besoin d' un code postal.  CodeLocalite est de type texte. 

J ai créé une requête qui  reprend le numéro, le code postal, et communes . Je demande aussi que cet requête affiche le tri Desc (descendant) .  

En faisant cela, quand l utilisateur choisi le code postal , la localité(commune) s affiche directement dans la liste déroulante des communes et inversèment . 

Voir le lien 

https://forums.commentcamarche.net/forum/affich-37684167-liste-deroulante-nom-prenom#1

Dans les commentaires, vous y verrez des captures d écran de ma table des codes postaux 


0
olivierporcinet Messages postés 13 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 25 mai 2023
23 mai 2023 à 16:04

1ère table : Nom ,n°, sexe, ......

2ème table : Nom, Réseau, .......

1er formulaire : Nom, n°, date naissance, nationalité, .............

2ème formulaire : Nom, n°, orientation, ......

En reliant les 2 tables avec le nom, cela me permet de choisir un nom dans mon 2ème formulaire via une liste déroulante et le n° s'indique automatiquement.

Ce qui m'intéresse c'est de mettre une alerte dans mon premier formulaire sur le champ [N°] si doublon mais à la saisie (BeforeUpdate).

J'ai essayé avec DLookup, Boolean, IfDecount................. mais cela ne marche pas.

La seule façon pour l'instant est d'indexer mon champ [N°] -  oui-sans doublons, de ce fait, lors de l'enregistrement, Access me signale un doublon.

Mais, étant curieux, je préférerais avoir une MsgBox.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
blackmefias_3350 Messages postés 706 Date d'inscription dimanche 20 septembre 2020 Statut Membre Dernière intervention 8 mars 2024 58
Modifié le 23 mai 2023 à 16:12

Si est null(RechDom( )).. Allez voir du côté des macro

Cela permet de faire une recherche  

Dom  est le domaine=table 


0
olivierporcinet Messages postés 13 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 25 mai 2023
23 mai 2023 à 16:16

Je vais gratter cela ; je débute en VBA et ce n'est pas facile ....

0
blackmefias_3350 Messages postés 706 Date d'inscription dimanche 20 septembre 2020 Statut Membre Dernière intervention 8 mars 2024 58
23 mai 2023 à 16:29
0
olivierporcinet Messages postés 13 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 25 mai 2023
23 mai 2023 à 16:31

Merci, je connais, la requête montre les doublons mais pas MsgBox

0
blackmefias_3350 Messages postés 706 Date d'inscription dimanche 20 septembre 2020 Statut Membre Dernière intervention 8 mars 2024 58
Modifié le 23 mai 2023 à 16:38

Je pense que vous devez dans votre MsgBox utiliser le résultat de la requête ou une partie de celle-ci

ex  votre nom est : [Nom]   ou quelque chose qui y ressemble

[nom] =  champ nom de votre table ou requête clients par exemple. 


0
olivierporcinet Messages postés 13 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 25 mai 2023
24 mai 2023 à 08:32

Bonjour,

Merci, je vois de ce côté.

0
blackmefias_3350 Messages postés 706 Date d'inscription dimanche 20 septembre 2020 Statut Membre Dernière intervention 8 mars 2024 58
24 mai 2023 à 17:23
0
olivierporcinet Messages postés 13 Date d'inscription lundi 2 octobre 2017 Statut Membre Dernière intervention 25 mai 2023
25 mai 2023 à 08:56

Merci

0