Message d'erreur si données correspondent au donnée d'une autre ta
26 réponses
Carolyn
Bonjour,
J'ai écrit il y a quelques jours concernant mon problème. J'aimerais, si
possible, pouvoir créer un message d'erreur si on entre des données dans une
table qui sont déjà entrées dans une autre.
Pour être plus précise, j'ai créé une base de données qui fait un suivi de
tous les ressources qui postulent pour un poste à l'intérieur de mon
entreprise. Nous voulons donc créer une "Blacklist", c'est-à-dire une liste
de gens qu'on ne voudra jamais engager pour notre entreprise. Ainsi, dans la
table de candidature, au lieu de prendre pour acquis que la personne qui
entrera les données va connaître tous les noms de la Blacklist par coeur, il
serait utile qu'un message d'erreur survienne lorsque un de ces noms est
entré.
On m'a dit de me référer à un programmeur pour ceci. Quelqu'un peut m'aider??
Ooops, erreur. Ce n'est pas sur APRES mise à jour mais AVANT. Donc ça devient:
Private Sub Ressource_BeforeUpdate(Cancel As Integer) If Not IsNull(DLookup("[Nom_blacklist]", "BlackList", _ "[Nom_blacklist] ='" & Me.Ressource & "'")) Then MsgBox "Attention ce postulant est dans la blacklist !!!" Cancel = True End If End Sub
Bonsoir,
Copies-colles ceci après avoir supprimé totalement ta procédure.
Private Sub Ressource_AfterUpdate() If Not IsNull(DLookup("[Nom_blacklist]", "BlackList", _ "[Nom_blacklist] ='" & Me.Ressource & "'")) Then MsgBox "Attention ce postulant est dans la blacklist !!!" Cancel = True End If End Sub
Salut eric,
Il me semble bien que c'est aprés la saisi de la ressource qu'il faut controler qu'elle n'existe pas dans la table blacklist et donc c'est dans afterupdate qu'il faut placer les instructions : isn't it ???
Ooops, erreur.
Ce n'est pas sur APRES mise à jour mais AVANT. Donc ça devient:
Private Sub Ressource_BeforeUpdate(Cancel As Integer)
If Not IsNull(DLookup("[Nom_blacklist]", "BlackList", _
"[Nom_blacklist] ='" & Me.Ressource & "'")) Then
MsgBox "Attention ce postulant est dans la blacklist !!!"
Cancel = True
End If
End Sub
Bonsoir,
Copies-colles ceci après avoir supprimé totalement ta procédure.
Private Sub Ressource_AfterUpdate()
If Not IsNull(DLookup("[Nom_blacklist]", "BlackList", _
"[Nom_blacklist] ='" & Me.Ressource & "'")) Then
MsgBox "Attention ce postulant est dans la blacklist !!!"
Cancel = True
End If
End Sub
Salut eric,
Il me semble bien que c'est aprés la saisi de la ressource qu'il faut
controler qu'elle n'existe pas dans la table blacklist et donc c'est
dans afterupdate qu'il faut placer les instructions : isn't it ???
Ooops, erreur. Ce n'est pas sur APRES mise à jour mais AVANT. Donc ça devient:
Private Sub Ressource_BeforeUpdate(Cancel As Integer) If Not IsNull(DLookup("[Nom_blacklist]", "BlackList", _ "[Nom_blacklist] ='" & Me.Ressource & "'")) Then MsgBox "Attention ce postulant est dans la blacklist !!!" Cancel = True End If End Sub
Bonsoir,
Copies-colles ceci après avoir supprimé totalement ta procédure.
Private Sub Ressource_AfterUpdate() If Not IsNull(DLookup("[Nom_blacklist]", "BlackList", _ "[Nom_blacklist] ='" & Me.Ressource & "'")) Then MsgBox "Attention ce postulant est dans la blacklist !!!" Cancel = True End If End Sub
Salut eric,
Il me semble bien que c'est aprés la saisi de la ressource qu'il faut controler qu'elle n'existe pas dans la table blacklist et donc c'est dans afterupdate qu'il faut placer les instructions : isn't it ???
Eric
Bonjour Fabien,
Je penche pour avant la mise à jour du champ. Si tu fais le contrôle après Mise à jour, tu vas sortir du champ Ressource pour devoir y revenir dans la cas où cette ressource est blacklistée. De plus, tu ne peux pas utiliser le Cancel. A l'inverse avant la mise à jour, si la ressource est blacklistée tu as le message et tu restes dans le contrôle (sans en effacer son contenu mais pas demandé).
Salut eric, Il me semble bien que c'est aprés la saisi de la ressource qu'il faut controler qu'elle n'existe pas dans la table blacklist et donc c'est dans afterupdate qu'il faut placer les instructions : isn't it ???
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Bonjour Fabien,
Je penche pour avant la mise à jour du champ. Si tu fais le contrôle
après Mise à jour, tu vas sortir du champ Ressource pour devoir y
revenir dans la cas où cette ressource est blacklistée. De plus, tu ne
peux pas utiliser le Cancel. A l'inverse avant la mise à jour, si la
ressource est blacklistée tu as le message et tu restes dans le contrôle
(sans en effacer son contenu mais pas demandé).
Salut eric,
Il me semble bien que c'est aprés la saisi de la ressource qu'il faut
controler qu'elle n'existe pas dans la table blacklist et donc c'est
dans afterupdate qu'il faut placer les instructions : isn't it ???
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Je penche pour avant la mise à jour du champ. Si tu fais le contrôle après Mise à jour, tu vas sortir du champ Ressource pour devoir y revenir dans la cas où cette ressource est blacklistée. De plus, tu ne peux pas utiliser le Cancel. A l'inverse avant la mise à jour, si la ressource est blacklistée tu as le message et tu restes dans le contrôle (sans en effacer son contenu mais pas demandé).
Salut eric, Il me semble bien que c'est aprés la saisi de la ressource qu'il faut controler qu'elle n'existe pas dans la table blacklist et donc c'est dans afterupdate qu'il faut placer les instructions : isn't it ???
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Carolyn
Dans l'onglet Événement (quand je vais dans les propriétés de la boîte Ressource), est-ce que c'est Procédure événementielle pour AVANT ou APRÈS mise à jour??
J'ai essayé les 2 et maintenant quand j'entre n'importe quel nom (même un nom qui n'est pas sur la blacklist), un message s'affiche qui dit:
Erreur d'exécution '2001': Opération annulée.
Fin, Débogage, Aide
????????
Dans l'onglet Événement (quand je vais dans les propriétés de la boîte
Ressource), est-ce que c'est Procédure événementielle pour AVANT ou APRÈS
mise à jour??
J'ai essayé les 2 et maintenant quand j'entre n'importe quel nom (même un
nom qui n'est pas sur la blacklist), un message s'affiche qui dit:
Dans l'onglet Événement (quand je vais dans les propriétés de la boîte Ressource), est-ce que c'est Procédure événementielle pour AVANT ou APRÈS mise à jour??
J'ai essayé les 2 et maintenant quand j'entre n'importe quel nom (même un nom qui n'est pas sur la blacklist), un message s'affiche qui dit:
Erreur d'exécution '2001': Opération annulée.
Fin, Débogage, Aide
????????
Fabien
Dans l'onglet Événement (quand je vais dans les propriétés de la boîte Ressource), est-ce que c'est Procédure événementielle pour AVANT ou APRÈS mise à jour??
J'ai essayé les 2 et maintenant quand j'entre n'importe quel nom (même un nom qui n'est pas sur la blacklist), un message s'affiche qui dit:
Erreur d'exécution '2001': Opération annulée.
Fin, Débogage, Aide
???????? Un exemple valant parfois mieux qu'un long .....
http://cjoint.com/?hgpGzd8qTA Petite base avec 2 table et un formulaire ;-)
Dans l'onglet Événement (quand je vais dans les propriétés de la boîte
Ressource), est-ce que c'est Procédure événementielle pour AVANT ou APRÈS
mise à jour??
J'ai essayé les 2 et maintenant quand j'entre n'importe quel nom (même un
nom qui n'est pas sur la blacklist), un message s'affiche qui dit:
Erreur d'exécution '2001':
Opération annulée.
Fin, Débogage, Aide
????????
Un exemple valant parfois mieux qu'un long .....
http://cjoint.com/?hgpGzd8qTA
Petite base avec 2 table et un formulaire ;-)
Dans l'onglet Événement (quand je vais dans les propriétés de la boîte Ressource), est-ce que c'est Procédure événementielle pour AVANT ou APRÈS mise à jour??
J'ai essayé les 2 et maintenant quand j'entre n'importe quel nom (même un nom qui n'est pas sur la blacklist), un message s'affiche qui dit:
Erreur d'exécution '2001': Opération annulée.
Fin, Débogage, Aide
???????? Un exemple valant parfois mieux qu'un long .....
http://cjoint.com/?hgpGzd8qTA Petite base avec 2 table et un formulaire ;-)
Carolyn
C'est exactement ça que je veux!!
Quand j'ai copié / collé exactement ton code, ça ne fonctionnait pas parce que nos champs n'avaient pas le même nom... Alors j'ai adapté pour ma DB:
Private Sub Ressource_AfterUpdate()
End Sub
Private Sub Ressource_BeforeUpdate(Cancel As Integer) If Nz(DCount("[Ressource]", "Blacklist", "[Ressource] = '" & Me.Ressource & "'"), 0) > 0 Then MsgBox "Attention ressource dans blacklist !!!" Cancel = True End If End Sub
Ceci fonctionne, le message d'erreur apparaît, mais il apparaît pour TOUS les noms qu'on entre maintenant, et non que pour ceux dans la blacklist.
Je m'excuse pour être aussi difficile, mais on y est presque!!!
Merci infiniment, Carolyn
C'est exactement ça que je veux!!
Quand j'ai copié / collé exactement ton code, ça ne fonctionnait pas parce
que nos champs n'avaient pas le même nom... Alors j'ai adapté pour ma DB:
Private Sub Ressource_AfterUpdate()
End Sub
Private Sub Ressource_BeforeUpdate(Cancel As Integer)
If Nz(DCount("[Ressource]", "Blacklist", "[Ressource] = '" & Me.Ressource &
"'"), 0) > 0 Then
MsgBox "Attention ressource dans blacklist !!!"
Cancel = True
End If
End Sub
Ceci fonctionne, le message d'erreur apparaît, mais il apparaît pour TOUS
les noms qu'on entre maintenant, et non que pour ceux dans la blacklist.
Je m'excuse pour être aussi difficile, mais on y est presque!!!
Quand j'ai copié / collé exactement ton code, ça ne fonctionnait pas parce que nos champs n'avaient pas le même nom... Alors j'ai adapté pour ma DB:
Private Sub Ressource_AfterUpdate()
End Sub
Private Sub Ressource_BeforeUpdate(Cancel As Integer) If Nz(DCount("[Ressource]", "Blacklist", "[Ressource] = '" & Me.Ressource & "'"), 0) > 0 Then MsgBox "Attention ressource dans blacklist !!!" Cancel = True End If End Sub
Ceci fonctionne, le message d'erreur apparaît, mais il apparaît pour TOUS les noms qu'on entre maintenant, et non que pour ceux dans la blacklist.
Je m'excuse pour être aussi difficile, mais on y est presque!!!
Merci infiniment, Carolyn
Eric
re,
Non, ca devrait marcher aussi bien avec Not IsNull(DlookUp(...)) qu'avec Dcount(...), le Nz() n'étant pas nécessaire puisque DCount() retourne 0 s'il n'existe aucun enregistrement dans le domaine répondant au critère.
Postes une bd zippée au format Access2000 avec les 2 tables concernées (quelques enregistrements fictifs seulement) et le formulaire sur http://cjoint.com/ et postes ici le lien fourni.
C'est exactement ça que je veux!!
Quand j'ai copié / collé exactement ton code, ça ne fonctionnait pas parce que nos champs n'avaient pas le même nom... Alors j'ai adapté pour ma DB:
Private Sub Ressource_AfterUpdate()
End Sub
Private Sub Ressource_BeforeUpdate(Cancel As Integer) If Nz(DCount("[Ressource]", "Blacklist", "[Ressource] = '" & Me.Ressource & "'"), 0) > 0 Then MsgBox "Attention ressource dans blacklist !!!" Cancel = True End If End Sub
Ceci fonctionne, le message d'erreur apparaît, mais il apparaît pour TOUS les noms qu'on entre maintenant, et non que pour ceux dans la blacklist.
Je m'excuse pour être aussi difficile, mais on y est presque!!!
Merci infiniment, Carolyn
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
re,
Non, ca devrait marcher aussi bien avec Not IsNull(DlookUp(...)) qu'avec
Dcount(...), le Nz() n'étant pas nécessaire puisque DCount() retourne 0
s'il n'existe aucun enregistrement dans le domaine répondant au critère.
Postes une bd zippée au format Access2000 avec les 2 tables concernées
(quelques enregistrements fictifs seulement) et le formulaire sur
http://cjoint.com/ et postes ici le lien fourni.
C'est exactement ça que je veux!!
Quand j'ai copié / collé exactement ton code, ça ne fonctionnait pas parce
que nos champs n'avaient pas le même nom... Alors j'ai adapté pour ma DB:
Private Sub Ressource_AfterUpdate()
End Sub
Private Sub Ressource_BeforeUpdate(Cancel As Integer)
If Nz(DCount("[Ressource]", "Blacklist", "[Ressource] = '" & Me.Ressource &
"'"), 0) > 0 Then
MsgBox "Attention ressource dans blacklist !!!"
Cancel = True
End If
End Sub
Ceci fonctionne, le message d'erreur apparaît, mais il apparaît pour TOUS
les noms qu'on entre maintenant, et non que pour ceux dans la blacklist.
Je m'excuse pour être aussi difficile, mais on y est presque!!!
Merci infiniment,
Carolyn
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Non, ca devrait marcher aussi bien avec Not IsNull(DlookUp(...)) qu'avec Dcount(...), le Nz() n'étant pas nécessaire puisque DCount() retourne 0 s'il n'existe aucun enregistrement dans le domaine répondant au critère.
Postes une bd zippée au format Access2000 avec les 2 tables concernées (quelques enregistrements fictifs seulement) et le formulaire sur http://cjoint.com/ et postes ici le lien fourni.
C'est exactement ça que je veux!!
Quand j'ai copié / collé exactement ton code, ça ne fonctionnait pas parce que nos champs n'avaient pas le même nom... Alors j'ai adapté pour ma DB:
Private Sub Ressource_AfterUpdate()
End Sub
Private Sub Ressource_BeforeUpdate(Cancel As Integer) If Nz(DCount("[Ressource]", "Blacklist", "[Ressource] = '" & Me.Ressource & "'"), 0) > 0 Then MsgBox "Attention ressource dans blacklist !!!" Cancel = True End If End Sub
Ceci fonctionne, le message d'erreur apparaît, mais il apparaît pour TOUS les noms qu'on entre maintenant, et non que pour ceux dans la blacklist.
Je m'excuse pour être aussi difficile, mais on y est presque!!!
Merci infiniment, Carolyn
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Fabien
C'est exactement ça que je veux!!
Quand j'ai copié / collé exactement ton code, ça ne fonctionnait pas parce que nos champs n'avaient pas le même nom... Alors j'ai adapté pour ma DB:
Private Sub Ressource_AfterUpdate()
End Sub
Private Sub Ressource_BeforeUpdate(Cancel As Integer) If Nz(DCount("[Ressource]", "Blacklist", "[Ressource] = '" & Me.Ressource & "'"), 0) > 0 Then MsgBox "Attention ressource dans blacklist !!!" Cancel = True End If End Sub
Ceci fonctionne, le message d'erreur apparaît, mais il apparaît pour TOUS les noms qu'on entre maintenant, et non que pour ceux dans la blacklist.
Je m'excuse pour être aussi difficile, mais on y est presque!!!
Merci infiniment, Carolyn Quelque chose doit m'echapper parceque le petit bout de base que je t'ai
donné en exemple fonctionne sans soucis. Recapitulons : Une Table TBLRessource, une table Blacklist. Un formulaire de saisi ayant comme source de données TblRessource. Un champ Ressource. Lorsque l'on saisi un Nom dans ce champ, la procedure beforeUpdate controle que ce nom n'est pas dan la tables blacklist. Si le nom y est alors message et on revient sur la saisie. S'il n'y est pas on continu la saisie J'ai bon là ?
Qu'est ce que tu as de ton coté ? Nom des tables ? noms des champs ? nom du formulaire ? L'idéal serait de me passer cette base ou un extrait que j'y jette un oeuil Lundi. Soit tu passe par http://cjoint.com/ Soit tu l'expédie en PJ a mon adresse (enleve les xxx) Bon week
C'est exactement ça que je veux!!
Quand j'ai copié / collé exactement ton code, ça ne fonctionnait pas parce
que nos champs n'avaient pas le même nom... Alors j'ai adapté pour ma DB:
Private Sub Ressource_AfterUpdate()
End Sub
Private Sub Ressource_BeforeUpdate(Cancel As Integer)
If Nz(DCount("[Ressource]", "Blacklist", "[Ressource] = '" & Me.Ressource &
"'"), 0) > 0 Then
MsgBox "Attention ressource dans blacklist !!!"
Cancel = True
End If
End Sub
Ceci fonctionne, le message d'erreur apparaît, mais il apparaît pour TOUS
les noms qu'on entre maintenant, et non que pour ceux dans la blacklist.
Je m'excuse pour être aussi difficile, mais on y est presque!!!
Merci infiniment,
Carolyn
Quelque chose doit m'echapper parceque le petit bout de base que je t'ai
donné en exemple fonctionne sans soucis.
Recapitulons :
Une Table TBLRessource, une table Blacklist.
Un formulaire de saisi ayant comme source de données TblRessource.
Un champ Ressource.
Lorsque l'on saisi un Nom dans ce champ, la procedure beforeUpdate
controle que ce nom n'est pas dan la tables blacklist.
Si le nom y est alors message et on revient sur la saisie.
S'il n'y est pas on continu la saisie
J'ai bon là ?
Qu'est ce que tu as de ton coté ?
Nom des tables ? noms des champs ? nom du formulaire ?
L'idéal serait de me passer cette base ou un extrait que j'y jette un
oeuil Lundi.
Soit tu passe par http://cjoint.com/
Soit tu l'expédie en PJ a mon adresse Urbaniakfabienxxx@neuf.fr (enleve
les xxx)
Bon week
Quand j'ai copié / collé exactement ton code, ça ne fonctionnait pas parce que nos champs n'avaient pas le même nom... Alors j'ai adapté pour ma DB:
Private Sub Ressource_AfterUpdate()
End Sub
Private Sub Ressource_BeforeUpdate(Cancel As Integer) If Nz(DCount("[Ressource]", "Blacklist", "[Ressource] = '" & Me.Ressource & "'"), 0) > 0 Then MsgBox "Attention ressource dans blacklist !!!" Cancel = True End If End Sub
Ceci fonctionne, le message d'erreur apparaît, mais il apparaît pour TOUS les noms qu'on entre maintenant, et non que pour ceux dans la blacklist.
Je m'excuse pour être aussi difficile, mais on y est presque!!!
Merci infiniment, Carolyn Quelque chose doit m'echapper parceque le petit bout de base que je t'ai
donné en exemple fonctionne sans soucis. Recapitulons : Une Table TBLRessource, une table Blacklist. Un formulaire de saisi ayant comme source de données TblRessource. Un champ Ressource. Lorsque l'on saisi un Nom dans ce champ, la procedure beforeUpdate controle que ce nom n'est pas dan la tables blacklist. Si le nom y est alors message et on revient sur la saisie. S'il n'y est pas on continu la saisie J'ai bon là ?
Qu'est ce que tu as de ton coté ? Nom des tables ? noms des champs ? nom du formulaire ? L'idéal serait de me passer cette base ou un extrait que j'y jette un oeuil Lundi. Soit tu passe par http://cjoint.com/ Soit tu l'expédie en PJ a mon adresse (enleve les xxx) Bon week
Carolyn
Bon voilà j'ai créé une DB avec moins de tables et tout, mais voilà l'idée générale.
http://cjoint.com/?hgrczx5r2g
Carolyn
Bon voilà j'ai créé une DB avec moins de tables et tout, mais voilà l'idée
générale.
Bon voilà j'ai créé une DB avec moins de tables et tout, mais voilà l'idée générale.
http://cjoint.com/?hgrczx5r2g
Carolyn
Eric
re Carolyn,
là : http://cjoint.com/?hgrtmhFh1r
Mais pour que ca marche il faut que tu saisisses Richard, luc. Ne pas oublier l'espace après la virgule car la saisie dans la table Blacklist a été faite comme cela.
Bon voilà j'ai créé une DB avec moins de tables et tout, mais voilà l'idée générale.
http://cjoint.com/?hgrczx5r2g
Carolyn
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
re Carolyn,
là : http://cjoint.com/?hgrtmhFh1r
Mais pour que ca marche il faut que tu saisisses Richard, luc. Ne pas
oublier l'espace après la virgule car la saisie dans la table Blacklist
a été faite comme cela.
Bon voilà j'ai créé une DB avec moins de tables et tout, mais voilà l'idée
générale.
http://cjoint.com/?hgrczx5r2g
Carolyn
--
A+
Eric
http://www.mpfa.info/
Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Mais pour que ca marche il faut que tu saisisses Richard, luc. Ne pas oublier l'espace après la virgule car la saisie dans la table Blacklist a été faite comme cela.
Bon voilà j'ai créé une DB avec moins de tables et tout, mais voilà l'idée générale.
http://cjoint.com/?hgrczx5r2g
Carolyn
-- A+ Eric http://www.mpfa.info/ Archives : http://groups.google.fr/group/microsoft.public.fr.access?hl=fr
Carolyn
Encore une fois, le message d'erreur s'affiche avec TOUTE entrée dans "Ressource". Je vous renvoie une DB avec toutes les relations entre les tables de ma DB mais seulement une entrée dans Applications. Peut-être que ça aidera?
http://cjoint.com/?hgrRdFXJAI
Merci encore!!!!!! Carolyn
Encore une fois, le message d'erreur s'affiche avec TOUTE entrée dans
"Ressource". Je vous renvoie une DB avec toutes les relations entre les
tables de ma DB mais seulement une entrée dans Applications. Peut-être que
ça aidera?
Encore une fois, le message d'erreur s'affiche avec TOUTE entrée dans "Ressource". Je vous renvoie une DB avec toutes les relations entre les tables de ma DB mais seulement une entrée dans Applications. Peut-être que ça aidera?