Case à cocher unique

- - Dernière réponse : yg_be
Messages postés
8701
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 octobre 2019
- 14 oct. 2019 à 23:48
Bonjour,

J'éssais dans un formulaire d'un BDD Access de créer un objet "case à cocher" unique.

Ce formulaire affiche plusieurs contacts d'un client, et j'ai un contact favori. Je pourrais pouvoir l'identifier par une case à cocher, mais dans tous les résultats du filtre, je dois pouvoir cocher qu'un seul enregistrement, si j'essaye d'en cocher un autre, je voudrais avoir un message, qui me prévient que je ne peux selectionner qu'un seul contact favori et qui me demande si je veux changer de favori?

Quelqu'un a-t-il une idée sur la façon que je peux réaliser ceci ?

Merci à qui voudra bien m'aider.
Afficher la suite 

2 réponses

Messages postés
2086
Date d'inscription
samedi 25 octobre 2014
Statut
Membre
Dernière intervention
14 octobre 2019
989
0
Merci
Bonjour

Tu saisie les informations sur un formulaire ?
Tu utilises quel langage ?

Tu peux, s'il te plaît, nous mettre le code de ce que tu as déjà fait.
planetesud
Messages postés
6
Date d'inscription
mercredi 10 juin 2009
Statut
Membre
Dernière intervention
14 octobre 2019
-
Bonjour et merci pour ton intention. Oui je saisie les informations dans un formulaire.Je ne comprends pas ta question concernant le langage ? Je n'ai pas de code dans ma Bdd car inutile jusque présent;
Commenter la réponse de DelNC
Messages postés
8701
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 octobre 2019
433
0
Merci
bonjour, la case à cocher est-elle un champ d'une table?
peux-tu nous donner la liste de tes tables et des champs de tes tables?
yg_be
Messages postés
8701
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 octobre 2019
433 > planetesud
Messages postés
6
Date d'inscription
mercredi 10 juin 2009
Statut
Membre
Dernière intervention
14 octobre 2019
-
table commercial, un champ N° Auto, un champ nom et un lien vers ma table client.
table client, un champ n°, un champ Nom_du_client, un champ adresse, ville etc, un champ lien vers contact
table contact, un champ N°, un champ nom du contact, un champ type case à cocher.
_
donc chaque commercial a un seul client?
chaque client a un seul contact?
planetesud
Messages postés
6
Date d'inscription
mercredi 10 juin 2009
Statut
Membre
Dernière intervention
14 octobre 2019
-
Non j’ai une relation un à plusieurs
yg_be
Messages postés
8701
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 octobre 2019
433 > planetesud
Messages postés
6
Date d'inscription
mercredi 10 juin 2009
Statut
Membre
Dernière intervention
14 octobre 2019
-
donc ce serait dans la table client qu'il y a un champ qui contient le N° du commercial?
le client est lié à un seul commercial?
et dans la table contact un champ qui contient le N° du client?
le contact est lié à un seul client?
si j'ai bien deviné, alors je suggère de ne pas avoir de case à cocher dans la table contact, mais d'ajouter dans la table client un champ qui indique le N° du contact favori.
planetesud
Messages postés
6
Date d'inscription
mercredi 10 juin 2009
Statut
Membre
Dernière intervention
14 octobre 2019
-
Bonsoir,
Merci pour ton aide, mais comme expliqué plus haut, j'ai du changer de PC et je me suis embrouillée dans mes champs cités, car j'ai pris mon PC Perso, alors que ma base est sur mon PC Pro.... oups.....
Dans ma table commercial : N°Employé, Nom et Prénom
Dans ma table client : N°Client, Nom, adresse...., Lien avec Commercial
Dans ma table contact client :N°Contact, Nom du contact, Lien avec Client, Case à cocher "Favori"

J'ai un début de solution, dans ma table Contact, j'ai créé un champ qui compte mes "Case à cocher", que j'ai nommé "CompteMail" et dans mon formulaire, en source contrôle j'écris :
=SomDom"[Favori]";"T3_ContactClient")


Ensuite dans mon formulaire :
Private Sub Favori_Click(Cancel As Integer)
Dim sql As String
Dim rep As Long

If Me.CompteMail.Value < 0 Then

rep = MsgBox("Vous ne devez choisir qu'un seul mail de contact. Voulez-vous conserver ce mail ?", vbYesNo, "ATTENTION")
'si la réponse est non : il décoche le contact coché
If rep = vbNo Then

Me.Favori = False

Else
'Decoche toutes les cases à cocher et garde le contact désiré

sql = "update T3_ContactClient set Favori = false"
CurrentDb.Execute sql

End If
End If
Me.Requery
End Sub

Ce code fonctionne à peu près bien, à un détail près, si je décoche toutes mes cases, j'ai quand même le message, car l'actualisation se fait après... je pense que je devrais positionner ce code ailleurs, mais je tourne en rond.
De plus, il y a des fois, mais pas à chaque fois, il me dit qu'une autre personne est en train de modifier mes données en même temps, alors que je suis sure d'être seule sur cette base pour l'instant;

Si tu as des idées pour moi, je suis preneuse et encore désolée pour ma confusion.
Sandrine
yg_be
Messages postés
8701
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 octobre 2019
433 > planetesud
Messages postés
6
Date d'inscription
mercredi 10 juin 2009
Statut
Membre
Dernière intervention
14 octobre 2019
-
je suggère de ne pas avoir de case à cocher 'favori" dans la table contact, mais d'ajouter dans la table client un champ qui indique le N° du contact favori
Commenter la réponse de yg_be