Sur une table "Commandes" j'ai placé un index sans doublon sur deux champs,
NPersonne et DateCommande. Très bien, mais lorsque on essaye de créer une
nouvelle commande pour un élève à la même date, le message d'erreur d'access
apparaît bien, mais lorsque je quitte le message, la commande est malgré
tout enregistrée. Comment cela est-il-possible ? Où dois-je court circuiter
l'enregistrement après l'apparition du message ?
Merci
André Houssonloge
PS: la création de l'enregistrement "Commandes" se fait par du code VBA.
Access ne peut pas enregistrer un record si tu saisi sur une clé primaire une donnée en double.
Vérifie que tes champs sont en clé primaire (petite clé qui apparait à gauche du champ en création) et que tu a bien sélectionné sans doublon.
Sinon tu appuie sur la petite clé dans le menu de table pour la poser.
Si tu ne prend que l'option sans doublon sans définir de clé primaire, c'est normal qu'il enregistre en double.
André Houssonloge
Merci pour ces précisions.
Effectivement c'est une clé sans doublon, mais ce n'est pas la clé primaire. Voici le code qui doit créer la commande
Private Sub InsertNewCommande_Click() DoCmd.GoToRecord , , acNewRec If Me.NewRecord Then Me.DateCommande.SetFocus Me.Dirty = True VarNCommande = Me.IdCommande Me.Requery End If
Merci
"Jean" a écrit dans le message de news: 006401c3b44b$faf51b20$ Access ne peut pas enregistrer un record si tu saisi sur une clé primaire une donnée en double.
Vérifie que tes champs sont en clé primaire (petite clé qui apparait à gauche du champ en création) et que tu a bien sélectionné sans doublon.
Sinon tu appuie sur la petite clé dans le menu de table pour la poser.
Si tu ne prend que l'option sans doublon sans définir de clé primaire, c'est normal qu'il enregistre en double.
Merci pour ces précisions.
Effectivement c'est une clé sans doublon, mais ce n'est pas la clé primaire.
Voici le code qui doit créer la commande
Private Sub InsertNewCommande_Click()
DoCmd.GoToRecord , , acNewRec
If Me.NewRecord Then
Me.DateCommande.SetFocus
Me.Dirty = True
VarNCommande = Me.IdCommande
Me.Requery
End If
Merci
"Jean" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 006401c3b44b$faf51b20$a501280a@phx.gbl...
Access ne peut pas enregistrer un record si tu saisi sur
une clé primaire une donnée en double.
Vérifie que tes champs sont en clé primaire (petite clé
qui apparait à gauche du champ en création) et que tu a
bien sélectionné sans doublon.
Sinon tu appuie sur la petite clé dans le menu de table
pour la poser.
Si tu ne prend que l'option sans doublon sans définir de
clé primaire, c'est normal qu'il enregistre en double.
Effectivement c'est une clé sans doublon, mais ce n'est pas la clé primaire. Voici le code qui doit créer la commande
Private Sub InsertNewCommande_Click() DoCmd.GoToRecord , , acNewRec If Me.NewRecord Then Me.DateCommande.SetFocus Me.Dirty = True VarNCommande = Me.IdCommande Me.Requery End If
Merci
"Jean" a écrit dans le message de news: 006401c3b44b$faf51b20$ Access ne peut pas enregistrer un record si tu saisi sur une clé primaire une donnée en double.
Vérifie que tes champs sont en clé primaire (petite clé qui apparait à gauche du champ en création) et que tu a bien sélectionné sans doublon.
Sinon tu appuie sur la petite clé dans le menu de table pour la poser.
Si tu ne prend que l'option sans doublon sans définir de clé primaire, c'est normal qu'il enregistre en double.
Raymond [mvp]
Bonsoir.
si tu dois tester si la date est en doublon il faut le faire dans l'événement beforeupdate du controle date. tu lances un dcount ou un dlookup sur le champ date, dans la table avec le critère NPersonne = me.NPersonne . dans ta procédure, tu te positionnes sur un nouvel enregistrement et ensuite tu testes si tu es dessus, pourquoi ? tu mets dirty à true , pourquoi ? comment le varncommande peut-il être chargé alors qu'il n'y a pas eu de saisie encore ? pourquoi un requery ? -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"André Houssonloge" a écrit dans le message de news:
Merci pour ces précisions.
Effectivement c'est une clé sans doublon, mais ce n'est pas la clé primaire.
Voici le code qui doit créer la commande
Private Sub InsertNewCommande_Click() DoCmd.GoToRecord , , acNewRec If Me.NewRecord Then Me.DateCommande.SetFocus Me.Dirty = True VarNCommande = Me.IdCommande Me.Requery End If
Merci
"Jean" a écrit dans le message de news: 006401c3b44b$faf51b20$ Access ne peut pas enregistrer un record si tu saisi sur une clé primaire une donnée en double.
Vérifie que tes champs sont en clé primaire (petite clé qui apparait à gauche du champ en création) et que tu a bien sélectionné sans doublon.
Sinon tu appuie sur la petite clé dans le menu de table pour la poser.
Si tu ne prend que l'option sans doublon sans définir de clé primaire, c'est normal qu'il enregistre en double.
Bonsoir.
si tu dois tester si la date est en doublon il faut le faire dans
l'événement beforeupdate du controle date. tu lances un dcount ou un dlookup
sur le champ date, dans la table avec le critère NPersonne = me.NPersonne .
dans ta procédure, tu te positionnes sur un nouvel enregistrement et ensuite
tu testes si tu es dessus, pourquoi ?
tu mets dirty à true , pourquoi ?
comment le varncommande peut-il être chargé alors qu'il n'y a pas eu de
saisie encore ?
pourquoi un requery ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"André Houssonloge" <ahis@skynet.be> a écrit dans le message de
news:uWbXcIFtDHA.2416@TK2MSFTNGP10.phx.gbl...
Merci pour ces précisions.
Effectivement c'est une clé sans doublon, mais ce n'est pas la clé
primaire.
Voici le code qui doit créer la commande
Private Sub InsertNewCommande_Click()
DoCmd.GoToRecord , , acNewRec
If Me.NewRecord Then
Me.DateCommande.SetFocus
Me.Dirty = True
VarNCommande = Me.IdCommande
Me.Requery
End If
Merci
"Jean" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 006401c3b44b$faf51b20$a501280a@phx.gbl...
Access ne peut pas enregistrer un record si tu saisi sur
une clé primaire une donnée en double.
Vérifie que tes champs sont en clé primaire (petite clé
qui apparait à gauche du champ en création) et que tu a
bien sélectionné sans doublon.
Sinon tu appuie sur la petite clé dans le menu de table
pour la poser.
Si tu ne prend que l'option sans doublon sans définir de
clé primaire, c'est normal qu'il enregistre en double.
si tu dois tester si la date est en doublon il faut le faire dans l'événement beforeupdate du controle date. tu lances un dcount ou un dlookup sur le champ date, dans la table avec le critère NPersonne = me.NPersonne . dans ta procédure, tu te positionnes sur un nouvel enregistrement et ensuite tu testes si tu es dessus, pourquoi ? tu mets dirty à true , pourquoi ? comment le varncommande peut-il être chargé alors qu'il n'y a pas eu de saisie encore ? pourquoi un requery ? -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"André Houssonloge" a écrit dans le message de news:
Merci pour ces précisions.
Effectivement c'est une clé sans doublon, mais ce n'est pas la clé primaire.
Voici le code qui doit créer la commande
Private Sub InsertNewCommande_Click() DoCmd.GoToRecord , , acNewRec If Me.NewRecord Then Me.DateCommande.SetFocus Me.Dirty = True VarNCommande = Me.IdCommande Me.Requery End If
Merci
"Jean" a écrit dans le message de news: 006401c3b44b$faf51b20$ Access ne peut pas enregistrer un record si tu saisi sur une clé primaire une donnée en double.
Vérifie que tes champs sont en clé primaire (petite clé qui apparait à gauche du champ en création) et que tu a bien sélectionné sans doublon.
Sinon tu appuie sur la petite clé dans le menu de table pour la poser.
Si tu ne prend que l'option sans doublon sans définir de clé primaire, c'est normal qu'il enregistre en double.
André Houssonloge
Bonjour,
je clic sur un bouton "New commande" et je veux que mon record soit immédiatement validé pour m'envoyer un formulaire indépendant qui me servira à enregistrer le détail de la commande créée juste avant Si je ne fais pas cela, je n'ai pas la valeur de mon IdCommande pour le lien avec la table des DétailsCommandes.
Merci pour les explications préalables.
En espérant avoir expliqué plus ou moins bien mon cas.
Je suis de temps en temps sous Access...
Merci
André Houssonloge
"Raymond [mvp]" a écrit dans le message de news:
Bonsoir.
si tu dois tester si la date est en doublon il faut le faire dans l'événement beforeupdate du controle date. tu lances un dcount ou un dlookup
sur le champ date, dans la table avec le critère NPersonne = me.NPersonne .
dans ta procédure, tu te positionnes sur un nouvel enregistrement et ensuite
tu testes si tu es dessus, pourquoi ? tu mets dirty à true , pourquoi ? comment le varncommande peut-il être chargé alors qu'il n'y a pas eu de saisie encore ? pourquoi un requery ? -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"André Houssonloge" a écrit dans le message de news:
Merci pour ces précisions.
Effectivement c'est une clé sans doublon, mais ce n'est pas la clé primaire.
Voici le code qui doit créer la commande
Private Sub InsertNewCommande_Click() DoCmd.GoToRecord , , acNewRec If Me.NewRecord Then Me.DateCommande.SetFocus Me.Dirty = True VarNCommande = Me.IdCommande Me.Requery End If
Merci
"Jean" a écrit dans le message de news: 006401c3b44b$faf51b20$ Access ne peut pas enregistrer un record si tu saisi sur une clé primaire une donnée en double.
Vérifie que tes champs sont en clé primaire (petite clé qui apparait à gauche du champ en création) et que tu a bien sélectionné sans doublon.
Sinon tu appuie sur la petite clé dans le menu de table pour la poser.
Si tu ne prend que l'option sans doublon sans définir de clé primaire, c'est normal qu'il enregistre en double.
Bonjour,
je clic sur un bouton "New commande" et je veux que mon record soit
immédiatement validé pour m'envoyer un formulaire indépendant qui me servira
à enregistrer le détail de la commande créée juste avant Si je ne fais pas
cela, je n'ai pas la valeur de mon IdCommande pour le lien avec la table des
DétailsCommandes.
Merci pour les explications préalables.
En espérant avoir expliqué plus ou moins bien mon cas.
Je suis de temps en temps sous Access...
Merci
André Houssonloge
"Raymond [mvp]" <XYZ.access.seneque@free.fr> a écrit dans le message de
news: e2AbOZFtDHA.2880@tk2msftngp13.phx.gbl...
Bonsoir.
si tu dois tester si la date est en doublon il faut le faire dans
l'événement beforeupdate du controle date. tu lances un dcount ou un
dlookup
sur le champ date, dans la table avec le critère NPersonne = me.NPersonne
.
dans ta procédure, tu te positionnes sur un nouvel enregistrement et
ensuite
tu testes si tu es dessus, pourquoi ?
tu mets dirty à true , pourquoi ?
comment le varncommande peut-il être chargé alors qu'il n'y a pas eu de
saisie encore ?
pourquoi un requery ?
--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour une meilleure
efficacité de tes interventions sur MPFA
"André Houssonloge" <ahis@skynet.be> a écrit dans le message de
news:uWbXcIFtDHA.2416@TK2MSFTNGP10.phx.gbl...
Merci pour ces précisions.
Effectivement c'est une clé sans doublon, mais ce n'est pas la clé
primaire.
Voici le code qui doit créer la commande
Private Sub InsertNewCommande_Click()
DoCmd.GoToRecord , , acNewRec
If Me.NewRecord Then
Me.DateCommande.SetFocus
Me.Dirty = True
VarNCommande = Me.IdCommande
Me.Requery
End If
Merci
"Jean" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 006401c3b44b$faf51b20$a501280a@phx.gbl...
Access ne peut pas enregistrer un record si tu saisi sur
une clé primaire une donnée en double.
Vérifie que tes champs sont en clé primaire (petite clé
qui apparait à gauche du champ en création) et que tu a
bien sélectionné sans doublon.
Sinon tu appuie sur la petite clé dans le menu de table
pour la poser.
Si tu ne prend que l'option sans doublon sans définir de
clé primaire, c'est normal qu'il enregistre en double.
je clic sur un bouton "New commande" et je veux que mon record soit immédiatement validé pour m'envoyer un formulaire indépendant qui me servira à enregistrer le détail de la commande créée juste avant Si je ne fais pas cela, je n'ai pas la valeur de mon IdCommande pour le lien avec la table des DétailsCommandes.
Merci pour les explications préalables.
En espérant avoir expliqué plus ou moins bien mon cas.
Je suis de temps en temps sous Access...
Merci
André Houssonloge
"Raymond [mvp]" a écrit dans le message de news:
Bonsoir.
si tu dois tester si la date est en doublon il faut le faire dans l'événement beforeupdate du controle date. tu lances un dcount ou un dlookup
sur le champ date, dans la table avec le critère NPersonne = me.NPersonne .
dans ta procédure, tu te positionnes sur un nouvel enregistrement et ensuite
tu testes si tu es dessus, pourquoi ? tu mets dirty à true , pourquoi ? comment le varncommande peut-il être chargé alors qu'il n'y a pas eu de saisie encore ? pourquoi un requery ? -- @+ Raymond Access MVP http://access.seneque.free.fr/ http://access2003.free.fr/ http://users.skynet.be/mpfa/ pour une meilleure efficacité de tes interventions sur MPFA
"André Houssonloge" a écrit dans le message de news:
Merci pour ces précisions.
Effectivement c'est une clé sans doublon, mais ce n'est pas la clé primaire.
Voici le code qui doit créer la commande
Private Sub InsertNewCommande_Click() DoCmd.GoToRecord , , acNewRec If Me.NewRecord Then Me.DateCommande.SetFocus Me.Dirty = True VarNCommande = Me.IdCommande Me.Requery End If
Merci
"Jean" a écrit dans le message de news: 006401c3b44b$faf51b20$ Access ne peut pas enregistrer un record si tu saisi sur une clé primaire une donnée en double.
Vérifie que tes champs sont en clé primaire (petite clé qui apparait à gauche du champ en création) et que tu a bien sélectionné sans doublon.
Sinon tu appuie sur la petite clé dans le menu de table pour la poser.
Si tu ne prend que l'option sans doublon sans définir de clé primaire, c'est normal qu'il enregistre en double.