Message d'erreurs

Résolu/Fermé
Zonteo Messages postés 105 Date d'inscription lundi 18 décembre 2017 Statut Membre Dernière intervention 3 juin 2022 - 25 août 2018 à 13:45
Zonteo Messages postés 105 Date d'inscription lundi 18 décembre 2017 Statut Membre Dernière intervention 3 juin 2022 - 11 sept. 2018 à 15:38
Bonjour,
Je me demande si mon titre correspond à ma préoccupation.
Avec toutes mes excuses je voudrais vous suggérer une preoccupation.
J'ai établi une relation entre 2 tables T_Buro_vote et T_Candidat.
J'ai ensuite un formulaire de saisi basé sur ces 2 tables avec 2 parties.
Une partie du formulaire recueil les informations du bureau de vote et les stocke dans la table T_Buro_vote.
La seconde recueil les noms et les voix des candidats et les stocke dans la table T_Candidat.
Donc il y a 2 Tables différentes pour le seul formulaire.
Alors je voudrais qu'en enregistrant le nombre de voix obtenues par candidat selon le BV (Bureau de vote), qu'un message d'erreur s'affiche lorsque la somme des voix obtenues des candidats dépassent le nombre de suffrage exprimé du BV et ainsi de suite pour chaque BV.
Merci c'est l'ultime étape qui me reste.
Tout en comptant toujours sur votre aide, je vous prie d'agréer ma très haute considération.

2 réponses

yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
25 août 2018 à 15:45
bonjour,voici une suggestion pour empêcher la somme des voix obtenues des candidats de dépasser le nombre de suffrage exprimé du BV : un code à mettre au niveau du sous-formulaire.
Option Explicit
Private Sub OBTENUS_BeforeUpdate(Cancel As Integer)
Dim tot As Long, cnt As Long, gtot As Long
Dim where As String
where = "ID_Buro_Vote = " & Me.Form.Parent!ID_Buro_Vote & " and ID_Candidat <> " & ID_Candidat
cnt = DCount("OBTENUS", "T_Candidat", where)
If cnt > 0 Then
    tot = DSum("OBTENUS", "T_Candidat", where)
Else
    tot = 0
End If
gtot = tot + Me.OBTENUS
If gtot > Me.Form.Parent!SUFFRAGE_EXPRIME Then
    Call MsgBox( _
        "La somme des voix obtenues des candidats (" & gtot & ") dépasse " & _
        "le nombre de suffrages exprimés du BV (" & Me.Form.Parent!SUFFRAGE_EXPRIME & ").", _
        vbOKOnly, "Merci de corriger.")
    Cancel = True  ' ceci va empecher de sauver la valeur incorrecte
End If
End Sub
0
Zonteo Messages postés 105 Date d'inscription lundi 18 décembre 2017 Statut Membre Dernière intervention 3 juin 2022 1
29 août 2018 à 20:46
Bonsoir.
Je vous présente toutes mes excuses.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > Zonteo Messages postés 105 Date d'inscription lundi 18 décembre 2017 Statut Membre Dernière intervention 3 juin 2022
29 août 2018 à 22:19
pas de soucis, :-)
0
Zonteo Messages postés 105 Date d'inscription lundi 18 décembre 2017 Statut Membre Dernière intervention 3 juin 2022 1
30 août 2018 à 19:15
Bonsoir.
Je vous suis gré.
Maintenant j'attends votre aide avec tout le respect que je vous dois.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > Zonteo Messages postés 105 Date d'inscription lundi 18 décembre 2017 Statut Membre Dernière intervention 3 juin 2022
30 août 2018 à 19:27
avec tout mon respect:
tu peux vérifier la première condition chaque fois que tu enregistres le vote d'un candidat. c'est ce que tu fais en mettant la vérification dans OBTENUS_BeforeUpdate.
par contre, tu ne peux pas vérifier la deuxième condition avant d'avoir enregistré un BV complet. donc il faut peut-être associer cette seconde vérification à une autre action, j'essaie de te faire dire laquelle.
autrement dit, comment le programme peut-il savoir que tu as fini de saisir les voix obtenues des candidats?
0
Zonteo Messages postés 105 Date d'inscription lundi 18 décembre 2017 Statut Membre Dernière intervention 3 juin 2022 1
30 août 2018 à 19:55
Quand jai fini de saisir les voix des candidats du BV dans le sous formulaire je clic sur la commande enregistré sur le formulaire principal T_buro_vote.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
25 août 2018 à 16:44
pour le titre, moi j'aurais mis "détection automatique d'erreur d'encodage"
0
Zonteo Messages postés 105 Date d'inscription lundi 18 décembre 2017 Statut Membre Dernière intervention 3 juin 2022 1
Modifié le 26 août 2018 à 15:50
Bonjour,
Le code que j'ai reçu fonctionne à merveille. Je vous en remercie infiniment
Seulement je constate que j'ai mal posé ma préoccupation.
Au fait je voulais aussi qu'un message s'affiche lorsque la somme des OBTENUS est inférieure au SUFFRAGE_EXPRIME.
Pour pallier à cela j'ai modifié une partie du code que vous m'aviez envoyé et je l'ai ajouté à la suite.
J'ai ajouté ceci:

If gtot < Me.Form.Parent!SUFFRAGE_EXPRIME Then
Call MsgBox( _
"somme des voix obtenues des candidats (" & gtot & ") intérieur " & _
"au nombre de suffrages exprimés du BV (" & Me.Form.Parent!SUFFRAGE_EXPRIME & ").", _
vbOKOnly, "Merci de corriger.")
Cancel = True ' ceci va empêcher de sauver la valeur incorrecte
End If
Malheureusement il ne fonctionne que pour un seul candidat et empêche de saisir les voix des autres.
Vous remerciant d'avance je vous prie d'agréer ma très haute considération.
0
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471 > Zonteo Messages postés 105 Date d'inscription lundi 18 décembre 2017 Statut Membre Dernière intervention 3 juin 2022
26 août 2018 à 17:28
à quel moment devrait-on faire cette vérification supplémentaire?
0
Zonteo Messages postés 105 Date d'inscription lundi 18 décembre 2017 Statut Membre Dernière intervention 3 juin 2022 1
26 août 2018 à 18:03
Bonjour.
C'est au meme moment.
En principe par BV le SUFFRAGE_EXPRIMÉ doit être egal a la somme des voix OBTENUS des candidats par BV.
Alors
si le total des OBTENUS < SUFFRAGE_EXPRIME il faut afficher le message.d'erreurs
si le total des OBTENUS > SUFFRAGE_EXPRIME il faut afficher le message d'erreur.
Donc le code que vous m'aviez envoyé prend en compte la deuxieme condition ou OBTENUS est supérieur.
On a donc omis le cas contraire quand c'est inferieur.
0
Zonteo Messages postés 105 Date d'inscription lundi 18 décembre 2017 Statut Membre Dernière intervention 3 juin 2022 1
26 août 2018 à 18:11
Le code que vous m'aviez envoyé fonctionne quand le TOTAL des OBTENUS est supérieur au SUFFRAGE_EXPRIME.
Mais quand le TOTAL des OBTENUS est inferieur au SUFFRAGE_EXPRIME le message n'apparait pas alors que c'est aussi une erreur a corriger
Ce qui est juste c'est quand quand le total de OBTENUS=SUFFRAGE_EXPRIME.
0
Zonteo Messages postés 105 Date d'inscription lundi 18 décembre 2017 Statut Membre Dernière intervention 3 juin 2022 1
26 août 2018 à 18:19
C'est au mmoment.
Dès que j'enregistre la saisie si:
-Si Le total des OBTENUS > SUFFRAGE_EXPRIME le message d'erreur doit s'afficher
- Si le total des OBTENUS < SUFFRAGE_EXPRIME le message d'erreur doit s'afficher
0