|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Bonjour,
J'ai un formulaire avec les champs suivants : - Date / valeur : =Date() - User / valeur : = Environ("UserName") - Commentaire J'aimerais que l'utilisateur en question ne puisse créer qu'un seul enregistrement à la date du jour. J'ai beau cherché, je ne sais pas comment m'y prendre. Merci d'avance, |
|
|
00
|
|
|
#2 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Mets un index unique sur l'association DateDuJour et UserName() dans ta table qui conserve tes informations. Access n'autorisera qu'au maximum un seul energistrement pour cette combinaison.
Dans ta table en mode design, tu cliques sur l'îcone avec l'éclair. Tu donnes un nom à ton index (ex : UniciteJourUser) puis tu choisis les champs qui vont composer ton index (ici DateDuJour et UserName. En dessous tu choisi le type d'index 'unique'. Attention si un des deux éléments est null alors tu peux avoir plusieurs enregistrement avec les mêmes valeurs dans tes champs. Dans ce cas l'unicité est perdue. Autre solution tu définis ta combinaison de champs comme étant la clef primaire de ta table. Pour une clef primaire aucun des deux champs ne doit être à null. Avec ces solutions, si tu essayes de créer un autre enregistrement avec les même information, cela génère une erreur que tu peux gérer par code. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
10
|
|
|
#3 |
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
J'ai déjà une clé primaire sur mon numauto ; dois-je la supprimer ?
Dois-je procéder comme suit : Index Name ---> UniciteJourDatetoday > unique : Yes Field name ---> Datetoday User Si je procède comme tel, j'ai un message d'erreur lorsque je veux sauver la table : "The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate date, remove the index, or redefine the index to permit duplicate entries and try again." |
|
|
00
|
|
|
#4 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Tu peux garder ta clef primaire NumAuto, elle ne dérange pas.
Je ne comprends pas ta seconde question. L'écran des indexs doit ressembler à quelque chose comme cela Nom______________ Champ UniciteDateUtilisateur DateDuJour __________________ Utilisateur Type d'index : Unique. Pour le nom tu peux mettre ce que tu veux, l'important ce sont les champs. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#5 |
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
je fais ce que tu dis ; j'ai mis les print screens de ce que j'ai fait en annexe, si tu sais jeter un coup d'oeil stp
|
|
|
00
|
|
|
#6 |
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Ca y est enfin ca marche, j'aimerais savoir comment générer l'erreur d'acces par le code
J'ai trouvé merci pour toi aide |
|
|
00
|
|
|
#7 | ||
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
En ce qui concerne l'erreur, je l'ai générée par le code suivant :
Code :
Merci de m'aider svp |
||
|
|
00
|
|
|
#8 |
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Bonjour,
Pourrait-on m'aider sur le point suivant svp : Lorsque je quitte le formulaire par un bouton de commande il m'efface bien l'enregistrement mais j'aimerais qu'il me mettre aussi un msgBox pour prévenir l'utilisateur que l'enregistrement qui fait doublon va être supprimé. Merci |
|
|
00
|
|
|
#9 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
À vrai dire il n'efface pas l'enregistrement, il ne le crée pas du tout donc si tu détecte une erreur de doublon, informe immédiatement ton utilisateur qu'il ne sera pas enregistré.
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#10 |
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Oui je te le concède.
Mais comment lors de la fermutre émettre un message d'erreur comme celui du form_error afin que l'utilisateur sache que l'enregistrement qu'il a mis n'a pas été sauvé ? |
|
|
00
|
|
|
#11 | ||
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Le plsu simple est de le faire sur le OnError. Un truc du genre 'Attention doublon ! Ne sera pas conservé'.
Sinon, si tu travail un seul enr à la fois, tu peux noter dans une variable que tu as eu une erreur de doublon et sur l'événement OnClose réagir à cela. Quelque chose comme : Au niveau du formulaire : dans l'événement OnError : dans l'évenment OnClose : Code :
A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
||
|
|
00
|
|
|
#12 | ||
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Bonjour marot_r
Ou dois-je placer m_AErreurDoublon=true dans mon code déjà existant : Code :
|
||
|
|
00
|
|
|
#13 | ||
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Code :
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
||
|
|
00
|
|
|
#14 | ||||
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Je n'ai pas la msgbox malgré le code que tu as proposé :
Dans le formulaire : Dans le On_Error : Code :
Code :
|
||||
|
|
00
|
|
|
#15 |
![]() ![]() René MAROTInscription : octobre 2005 Messages : 5 462 ![]() |
Normalement cela devrait marcher.
C'est quoi "frm_phonecalls", le formulaire qui génére l'erreur ? Sinon met un point d'arret sur la ligne m_AErreurDoublon = True pour t'assurer qu'elle est bien exécuté. Et aussi un sur Private Sub Command57_Click() pour faire afficher la valeur de m_AErreurDoublon à ce moment après une erreur. A+
__________________
Vous voulez une réponse rapide et efficace à vos questions téchniques ? Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs. |
|
|
00
|
|
|
#16 | |||
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Citation:
Il faut que je me mette sur un autre enregistrement pour avoir la msgbox que j'ai déjà par ailleurs avec Form_Error Avant que je click sur mon bouton close, il faudrait enregister le nouveau record mais je n'y arrive pas. J'ai essayé de placer le code suivant sur quasi tous les évènements mais rien à faire : Code :
|
|||
|
|
00
|
|
|
#17 |
|
Débutant
Inscription : octobre 2004 Messages : 432 ![]() |
Avez-vous une idée pour mon problème svp ?
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com