Corriger mon code VBA pour une MsgBox vbYesNoCancel
5 réponses
Nelly
Bonjour,
voici mon problème :
Table "Coordonnéesduclient" et formulaire du même nom avec onglets et
sous-formulaires
Champs "Nom", "Prénom" , "Adresse"
Je souhaite éviter les doublons involontaires dans la base mais permettre la
création d'homonymes volontaires. J'utilise donc une message box vb
YesNoCancel (grâce à de précieux conseils sur ce forum) AVANT mise à jour par
un code évènement sur le contrôle "Prénom" avec 3 actions en fonction du
choix de l'utilisateur :
vbYes : créer homonyme en conservant [Nom] et [Prénom] saisis et se placer
sur le contrôle suivant "Adresse"
vbNo : ouvrir le formulaire en cours sur l'enregistrement déjà existant pour
ces [Nom] et [Prénom]
vbCancel : annuler les [Nom]et [prénom] saisis et se replacer sur le
contrôle "Nom" dans le formulaire actif
La traduction erronée de tout cela donne le code ci-dessous. Quelqu'un
pourrait-il me proposer une version corrigée de ce code, les précédentes
contributions m'ayant fait avancer mais n'ayant pas résolu ma difficulté ?
Merci beaucoup,
Nelly
Private Sub Prénom_BeforeUpdate(Cancel As Integer)
'variable stockant la réponse donnée dans la boite de dialogue
Dim intReponse As Integer
If Not IsNull(DLookup("Nom", "Coordonnéesduclient", "[Nom] ='" & Me!Nom & "'
AND [Prénom]='" & Me.Prénom & "'")) Then intResponse = MsgBox("Ce
bénéficiaire semble déjà enregistré. Voulez-vous saisir un HOMONYME ?",
vbYesNoCancel + vbCritical + vbDefaultButton3, "Attention !")
Select Case intReponse
Case vbYes
Forms!Coordonnéesduclient!Adresse.SetFocus
Case vbNo
DoCmd.OpenForm "Coordonnéesduclient", acNormal, , "[Nom] ='" & Me!Nom &
"' AND [Prénom]='" & Me.Prénom & "'"
Case vbCancel
Form.Undo
Forms!Coordonnéesduclient!Nom.SetFocus
End Select
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michel
Bonjour A la place de ton openform dans le cas VbNo essaie Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" & Me.Prénom & "'" Michel
"Nelly" a écrit dans le message de news:
Bonjour,
voici mon problème : Table "Coordonnéesduclient" et formulaire du même nom avec onglets et sous-formulaires Champs "Nom", "Prénom" , "Adresse"
Je souhaite éviter les doublons involontaires dans la base mais permettre la création d'homonymes volontaires. J'utilise donc une message box vb YesNoCancel (grâce à de précieux conseils sur ce forum) AVANT mise à jour par un code évènement sur le contrôle "Prénom" avec 3 actions en fonction du choix de l'utilisateur : vbYes : créer homonyme en conservant [Nom] et [Prénom] saisis et se placer sur le contrôle suivant "Adresse" vbNo : ouvrir le formulaire en cours sur l'enregistrement déjà existant pour ces [Nom] et [Prénom] vbCancel : annuler les [Nom]et [prénom] saisis et se replacer sur le contrôle "Nom" dans le formulaire actif
La traduction erronée de tout cela donne le code ci-dessous. Quelqu'un pourrait-il me proposer une version corrigée de ce code, les précédentes contributions m'ayant fait avancer mais n'ayant pas résolu ma difficulté ?
Merci beaucoup, Nelly
Private Sub Prénom_BeforeUpdate(Cancel As Integer) 'variable stockant la réponse donnée dans la boite de dialogue Dim intReponse As Integer
If Not IsNull(DLookup("Nom", "Coordonnéesduclient", "[Nom] ='" & Me!Nom & "' AND [Prénom]='" & Me.Prénom & "'")) Then intResponse = MsgBox("Ce bénéficiaire semble déjà enregistré. Voulez-vous saisir un HOMONYME ?", vbYesNoCancel + vbCritical + vbDefaultButton3, "Attention !") Select Case intReponse Case vbYes Forms!Coordonnéesduclient!Adresse.SetFocus Case vbNo DoCmd.OpenForm "Coordonnéesduclient", acNormal, , "[Nom] ='" & Me!Nom & "' AND [Prénom]='" & Me.Prénom & "'" Case vbCancel Form.Undo Forms!Coordonnéesduclient!Nom.SetFocus End Select
End Sub
Bonjour
A la place de ton openform dans le cas VbNo essaie
Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" &
Me.Prénom & "'"
Michel
"Nelly" <Nelly@discussions.microsoft.com> a écrit dans le message de news:
DD2BE88B-9649-413F-A756-F4DD9F093605@microsoft.com...
Bonjour,
voici mon problème :
Table "Coordonnéesduclient" et formulaire du même nom avec onglets et
sous-formulaires
Champs "Nom", "Prénom" , "Adresse"
Je souhaite éviter les doublons involontaires dans la base mais permettre
la
création d'homonymes volontaires. J'utilise donc une message box vb
YesNoCancel (grâce à de précieux conseils sur ce forum) AVANT mise à jour
par
un code évènement sur le contrôle "Prénom" avec 3 actions en fonction du
choix de l'utilisateur :
vbYes : créer homonyme en conservant [Nom] et [Prénom] saisis et se placer
sur le contrôle suivant "Adresse"
vbNo : ouvrir le formulaire en cours sur l'enregistrement déjà existant
pour
ces [Nom] et [Prénom]
vbCancel : annuler les [Nom]et [prénom] saisis et se replacer sur le
contrôle "Nom" dans le formulaire actif
La traduction erronée de tout cela donne le code ci-dessous. Quelqu'un
pourrait-il me proposer une version corrigée de ce code, les précédentes
contributions m'ayant fait avancer mais n'ayant pas résolu ma difficulté ?
Merci beaucoup,
Nelly
Private Sub Prénom_BeforeUpdate(Cancel As Integer)
'variable stockant la réponse donnée dans la boite de dialogue
Dim intReponse As Integer
If Not IsNull(DLookup("Nom", "Coordonnéesduclient", "[Nom] ='" & Me!Nom &
"'
AND [Prénom]='" & Me.Prénom & "'")) Then intResponse = MsgBox("Ce
bénéficiaire semble déjà enregistré. Voulez-vous saisir un HOMONYME ?",
vbYesNoCancel + vbCritical + vbDefaultButton3, "Attention !")
Select Case intReponse
Case vbYes
Forms!Coordonnéesduclient!Adresse.SetFocus
Case vbNo
DoCmd.OpenForm "Coordonnéesduclient", acNormal, , "[Nom] ='" & Me!Nom &
"' AND [Prénom]='" & Me.Prénom & "'"
Case vbCancel
Form.Undo
Forms!Coordonnéesduclient!Nom.SetFocus
End Select
Bonjour A la place de ton openform dans le cas VbNo essaie Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" & Me.Prénom & "'" Michel
"Nelly" a écrit dans le message de news:
Bonjour,
voici mon problème : Table "Coordonnéesduclient" et formulaire du même nom avec onglets et sous-formulaires Champs "Nom", "Prénom" , "Adresse"
Je souhaite éviter les doublons involontaires dans la base mais permettre la création d'homonymes volontaires. J'utilise donc une message box vb YesNoCancel (grâce à de précieux conseils sur ce forum) AVANT mise à jour par un code évènement sur le contrôle "Prénom" avec 3 actions en fonction du choix de l'utilisateur : vbYes : créer homonyme en conservant [Nom] et [Prénom] saisis et se placer sur le contrôle suivant "Adresse" vbNo : ouvrir le formulaire en cours sur l'enregistrement déjà existant pour ces [Nom] et [Prénom] vbCancel : annuler les [Nom]et [prénom] saisis et se replacer sur le contrôle "Nom" dans le formulaire actif
La traduction erronée de tout cela donne le code ci-dessous. Quelqu'un pourrait-il me proposer une version corrigée de ce code, les précédentes contributions m'ayant fait avancer mais n'ayant pas résolu ma difficulté ?
Merci beaucoup, Nelly
Private Sub Prénom_BeforeUpdate(Cancel As Integer) 'variable stockant la réponse donnée dans la boite de dialogue Dim intReponse As Integer
If Not IsNull(DLookup("Nom", "Coordonnéesduclient", "[Nom] ='" & Me!Nom & "' AND [Prénom]='" & Me.Prénom & "'")) Then intResponse = MsgBox("Ce bénéficiaire semble déjà enregistré. Voulez-vous saisir un HOMONYME ?", vbYesNoCancel + vbCritical + vbDefaultButton3, "Attention !") Select Case intReponse Case vbYes Forms!Coordonnéesduclient!Adresse.SetFocus Case vbNo DoCmd.OpenForm "Coordonnéesduclient", acNormal, , "[Nom] ='" & Me!Nom & "' AND [Prénom]='" & Me.Prénom & "'" Case vbCancel Form.Undo Forms!Coordonnéesduclient!Nom.SetFocus End Select
End Sub
Nelly
Bonjour Michel, j'ai essayé cela ne fonctionne pas, mais j'ai remarqué pour le formulaire en question, alors qu'il y a 3 enregistrements, il m'indique dans la barre de défilement des enregistrements 1 sur 1 en se plaçant sur un enregistrement vide. Peut-être y a t-il un problème là ? Que dois-je vérifier ? Merci
Bonjour A la place de ton openform dans le cas VbNo essaie Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" & Me.Prénom & "'" Michel
Bonjour Michel,
j'ai essayé cela ne fonctionne pas, mais j'ai remarqué pour le formulaire en
question, alors qu'il y a 3 enregistrements, il m'indique dans la barre de
défilement des enregistrements 1 sur 1 en se plaçant sur un enregistrement
vide.
Peut-être y a t-il un problème là ? Que dois-je vérifier ?
Merci
Bonjour
A la place de ton openform dans le cas VbNo essaie
Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" &
Me.Prénom & "'"
Michel
Bonjour Michel, j'ai essayé cela ne fonctionne pas, mais j'ai remarqué pour le formulaire en question, alors qu'il y a 3 enregistrements, il m'indique dans la barre de défilement des enregistrements 1 sur 1 en se plaçant sur un enregistrement vide. Peut-être y a t-il un problème là ? Que dois-je vérifier ? Merci
Bonjour A la place de ton openform dans le cas VbNo essaie Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" & Me.Prénom & "'" Michel
michel
Attention le Mail coupe les lignes , tu a bien ecris ca sur une seule ligne! Si tu a 1 enr dans ton form comment est il ouvert ? a tu mis un filtre sur le form ? Est il bien associe a ta table ? N'est il pas en mode ajout de donnees ? Au fait quel version d'access ? la propriete Recordset n'existe que depuis 2000 Voila quelques pistes Sinon si pas trop gros envoie ta base a mon adresse en retirant AEnlever Michel "Nelly" a écrit dans le message de news:
Bonjour Michel, j'ai essayé cela ne fonctionne pas, mais j'ai remarqué pour le formulaire en question, alors qu'il y a 3 enregistrements, il m'indique dans la barre de défilement des enregistrements 1 sur 1 en se plaçant sur un enregistrement vide. Peut-être y a t-il un problème là ? Que dois-je vérifier ? Merci
Bonjour A la place de ton openform dans le cas VbNo essaie Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" & Me.Prénom & "'" Michel
Attention le Mail coupe les lignes , tu a bien ecris ca sur une seule ligne!
Si tu a 1 enr dans ton form comment est il ouvert ? a tu mis un filtre sur
le form ?
Est il bien associe a ta table ? N'est il pas en mode ajout de donnees ?
Au fait quel version d'access ? la propriete Recordset n'existe que depuis
2000
Voila quelques pistes
Sinon si pas trop gros envoie ta base a mon adresse en retirant AEnlever
Michel
"Nelly" <Nelly@discussions.microsoft.com> a écrit dans le message de news:
FF935B24-DB5A-46E3-89C1-B91D48C8AC09@microsoft.com...
Bonjour Michel,
j'ai essayé cela ne fonctionne pas, mais j'ai remarqué pour le formulaire
en
question, alors qu'il y a 3 enregistrements, il m'indique dans la barre de
défilement des enregistrements 1 sur 1 en se plaçant sur un enregistrement
vide.
Peut-être y a t-il un problème là ? Que dois-je vérifier ?
Merci
Bonjour
A la place de ton openform dans le cas VbNo essaie
Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" &
Me.Prénom & "'"
Michel
Attention le Mail coupe les lignes , tu a bien ecris ca sur une seule ligne! Si tu a 1 enr dans ton form comment est il ouvert ? a tu mis un filtre sur le form ? Est il bien associe a ta table ? N'est il pas en mode ajout de donnees ? Au fait quel version d'access ? la propriete Recordset n'existe que depuis 2000 Voila quelques pistes Sinon si pas trop gros envoie ta base a mon adresse en retirant AEnlever Michel "Nelly" a écrit dans le message de news:
Bonjour Michel, j'ai essayé cela ne fonctionne pas, mais j'ai remarqué pour le formulaire en question, alors qu'il y a 3 enregistrements, il m'indique dans la barre de défilement des enregistrements 1 sur 1 en se plaçant sur un enregistrement vide. Peut-être y a t-il un problème là ? Que dois-je vérifier ? Merci
Bonjour A la place de ton openform dans le cas VbNo essaie Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" & Me.Prénom & "'" Michel
Nelly
J'ai bien repris ton instruction sur une seule ligne.Le formulaire est bien associé à la table. je travaille sur ACCESS 2000. Mais à force de bidouiller, je ne sais plus où voir si le formulaire est en mode ajout de données ou pas. Pouurais-tu me le rappeler SVP? Merci. Nelly
Attention le Mail coupe les lignes , tu a bien ecris ca sur une seule ligne! Si tu a 1 enr dans ton form comment est il ouvert ? a tu mis un filtre sur le form ? Est il bien associe a ta table ? N'est il pas en mode ajout de donnees ? Au fait quel version d'access ? la propriete Recordset n'existe que depuis 2000 Voila quelques pistes Sinon si pas trop gros envoie ta base a mon adresse en retirant AEnlever Michel "Nelly" a écrit dans le message de news:
Bonjour Michel, j'ai essayé cela ne fonctionne pas, mais j'ai remarqué pour le formulaire en question, alors qu'il y a 3 enregistrements, il m'indique dans la barre de défilement des enregistrements 1 sur 1 en se plaçant sur un enregistrement vide. Peut-être y a t-il un problème là ? Que dois-je vérifier ? Merci
Bonjour A la place de ton openform dans le cas VbNo essaie Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" & Me.Prénom & "'" Michel
J'ai bien repris ton instruction sur une seule ligne.Le formulaire est bien
associé à la table.
je travaille sur ACCESS 2000.
Mais à force de bidouiller, je ne sais plus où voir si le formulaire est en
mode ajout de données ou pas. Pouurais-tu me le rappeler SVP?
Merci.
Nelly
Attention le Mail coupe les lignes , tu a bien ecris ca sur une seule ligne!
Si tu a 1 enr dans ton form comment est il ouvert ? a tu mis un filtre sur
le form ?
Est il bien associe a ta table ? N'est il pas en mode ajout de donnees ?
Au fait quel version d'access ? la propriete Recordset n'existe que depuis
2000
Voila quelques pistes
Sinon si pas trop gros envoie ta base a mon adresse en retirant AEnlever
Michel
"Nelly" <Nelly@discussions.microsoft.com> a écrit dans le message de news:
FF935B24-DB5A-46E3-89C1-B91D48C8AC09@microsoft.com...
Bonjour Michel,
j'ai essayé cela ne fonctionne pas, mais j'ai remarqué pour le formulaire
en
question, alors qu'il y a 3 enregistrements, il m'indique dans la barre de
défilement des enregistrements 1 sur 1 en se plaçant sur un enregistrement
vide.
Peut-être y a t-il un problème là ? Que dois-je vérifier ?
Merci
Bonjour
A la place de ton openform dans le cas VbNo essaie
Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" &
Me.Prénom & "'"
Michel
J'ai bien repris ton instruction sur une seule ligne.Le formulaire est bien associé à la table. je travaille sur ACCESS 2000. Mais à force de bidouiller, je ne sais plus où voir si le formulaire est en mode ajout de données ou pas. Pouurais-tu me le rappeler SVP? Merci. Nelly
Attention le Mail coupe les lignes , tu a bien ecris ca sur une seule ligne! Si tu a 1 enr dans ton form comment est il ouvert ? a tu mis un filtre sur le form ? Est il bien associe a ta table ? N'est il pas en mode ajout de donnees ? Au fait quel version d'access ? la propriete Recordset n'existe que depuis 2000 Voila quelques pistes Sinon si pas trop gros envoie ta base a mon adresse en retirant AEnlever Michel "Nelly" a écrit dans le message de news:
Bonjour Michel, j'ai essayé cela ne fonctionne pas, mais j'ai remarqué pour le formulaire en question, alors qu'il y a 3 enregistrements, il m'indique dans la barre de défilement des enregistrements 1 sur 1 en se plaçant sur un enregistrement vide. Peut-être y a t-il un problème là ? Que dois-je vérifier ? Merci
Bonjour A la place de ton openform dans le cas VbNo essaie Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" & Me.Prénom & "'" Michel
michel
Dans les proprietes de ton formulaire Onglets donnees regarde la propriete Entree Données (en 2003) ou peut etre Saisie Donnees en 2000 je ne me rappelle plus En tous cas Juste en dessous de la propriete Ajout Autorise. Voila @Plus Michel "Nelly" a écrit dans le message de news:
J'ai bien repris ton instruction sur une seule ligne.Le formulaire est bien associé à la table. je travaille sur ACCESS 2000. Mais à force de bidouiller, je ne sais plus où voir si le formulaire est en mode ajout de données ou pas. Pouurais-tu me le rappeler SVP? Merci. Nelly
Attention le Mail coupe les lignes , tu a bien ecris ca sur une seule ligne! Si tu a 1 enr dans ton form comment est il ouvert ? a tu mis un filtre sur le form ? Est il bien associe a ta table ? N'est il pas en mode ajout de donnees ? Au fait quel version d'access ? la propriete Recordset n'existe que depuis 2000 Voila quelques pistes Sinon si pas trop gros envoie ta base a mon adresse en retirant AEnlever Michel "Nelly" a écrit dans le message de news:
Bonjour Michel, j'ai essayé cela ne fonctionne pas, mais j'ai remarqué pour le formulaire en question, alors qu'il y a 3 enregistrements, il m'indique dans la barre de défilement des enregistrements 1 sur 1 en se plaçant sur un enregistrement vide. Peut-être y a t-il un problème là ? Que dois-je vérifier ? Merci
Bonjour A la place de ton openform dans le cas VbNo essaie Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" & Me.Prénom & "'" Michel
Dans les proprietes de ton formulaire
Onglets donnees
regarde la propriete Entree Données (en 2003) ou peut etre Saisie Donnees en
2000 je ne me rappelle plus
En tous cas Juste en dessous de la propriete Ajout Autorise.
Voila
@Plus
Michel
"Nelly" <Nelly@discussions.microsoft.com> a écrit dans le message de news:
E0B3DCEA-9B09-44F7-9D2C-D456A1DA49D7@microsoft.com...
J'ai bien repris ton instruction sur une seule ligne.Le formulaire est
bien
associé à la table.
je travaille sur ACCESS 2000.
Mais à force de bidouiller, je ne sais plus où voir si le formulaire est
en
mode ajout de données ou pas. Pouurais-tu me le rappeler SVP?
Merci.
Nelly
Attention le Mail coupe les lignes , tu a bien ecris ca sur une seule
ligne!
Si tu a 1 enr dans ton form comment est il ouvert ? a tu mis un filtre
sur
le form ?
Est il bien associe a ta table ? N'est il pas en mode ajout de donnees ?
Au fait quel version d'access ? la propriete Recordset n'existe que
depuis
2000
Voila quelques pistes
Sinon si pas trop gros envoie ta base a mon adresse en retirant AEnlever
Michel
"Nelly" <Nelly@discussions.microsoft.com> a écrit dans le message de
news:
FF935B24-DB5A-46E3-89C1-B91D48C8AC09@microsoft.com...
Bonjour Michel,
j'ai essayé cela ne fonctionne pas, mais j'ai remarqué pour le
formulaire
en
question, alors qu'il y a 3 enregistrements, il m'indique dans la barre
de
défilement des enregistrements 1 sur 1 en se plaçant sur un
enregistrement
vide.
Peut-être y a t-il un problème là ? Que dois-je vérifier ?
Merci
Bonjour
A la place de ton openform dans le cas VbNo essaie
Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" &
Me.Prénom & "'"
Michel
Dans les proprietes de ton formulaire Onglets donnees regarde la propriete Entree Données (en 2003) ou peut etre Saisie Donnees en 2000 je ne me rappelle plus En tous cas Juste en dessous de la propriete Ajout Autorise. Voila @Plus Michel "Nelly" a écrit dans le message de news:
J'ai bien repris ton instruction sur une seule ligne.Le formulaire est bien associé à la table. je travaille sur ACCESS 2000. Mais à force de bidouiller, je ne sais plus où voir si le formulaire est en mode ajout de données ou pas. Pouurais-tu me le rappeler SVP? Merci. Nelly
Attention le Mail coupe les lignes , tu a bien ecris ca sur une seule ligne! Si tu a 1 enr dans ton form comment est il ouvert ? a tu mis un filtre sur le form ? Est il bien associe a ta table ? N'est il pas en mode ajout de donnees ? Au fait quel version d'access ? la propriete Recordset n'existe que depuis 2000 Voila quelques pistes Sinon si pas trop gros envoie ta base a mon adresse en retirant AEnlever Michel "Nelly" a écrit dans le message de news:
Bonjour Michel, j'ai essayé cela ne fonctionne pas, mais j'ai remarqué pour le formulaire en question, alors qu'il y a 3 enregistrements, il m'indique dans la barre de défilement des enregistrements 1 sur 1 en se plaçant sur un enregistrement vide. Peut-être y a t-il un problème là ? Que dois-je vérifier ? Merci
Bonjour A la place de ton openform dans le cas VbNo essaie Me.Recordset.FindFirst "[Nom] ='" & Me!Nom & "' AND [Prénom]='" & Me.Prénom & "'" Michel