Bonjour,
Dans ma table, la clé primaire est sur le nom de la personne. [Nom]
Autre champ : [N° dossier]
J'aimerais avoir une MsgBox si le même n° de dossier est déjà encodé. (cela servirait de 2ème clé ....)
Des idées ?
Merci.
Bonne soirée
Version imprimable
Bonjour,
Dans ma table, la clé primaire est sur le nom de la personne. [Nom]
Autre champ : [N° dossier]
J'aimerais avoir une MsgBox si le même n° de dossier est déjà encodé. (cela servirait de 2ème clé ....)
Des idées ?
Merci.
Bonne soirée
Salut
Vous devez utiliser cette méthode pour vérifier qu'il n'y ait pas de doublon dans n°dossier
ça c'est un autre problème...... il est vrai qu'il peut avoir 2 personnes du même nom
Déjà ce n'est pas une bonne idée de caler une clé primaire sur un nom car le nom n'est pas unique ! Utilise plutot un num auto comme PK.
sinon pour vérifier à la saisie d'un numero de dossier qu'il est unique, utiliser l'EVT _beforeUpdate :
Code:
1
2
3
4
5
6
7
8
9 private sub NumeroDossier_beforeUpdate(cancel as boolean) if len(me.NumeroDossier ) > 0 then If dcount("*","Table_dossier", "[N° dossier] ='" & me.NumeroDossier & "'") > 0 then msgbox ("Ce NumeroDossier existe déjà !" , vbinformation, " Corrigez la saisie" Cancel = true end if end if end sub
J'ai un message d'erreur : La déclaration de la procédure ne correspond pas à la description de l'événement ....
Pour info, ma table : Jeune
Mon champ : [N°]
Code:
1
2
3
4
5
6
7
8
9
10
11 Private Sub N°_BeforeUpdate(cancel As Boolean) If Len(Me.N°) > 0 Then If DCount("*", "Jeune", "[N°] ='" & Me.N° & "'") > 0 Then msgbox ("Ce NumeroDossier existe déjà !" , vbinformation, " Corrigez la saisie" cancel = True End If End If End Sub End Sub
re,
si N° est numérique il faut supprimer les simples quotes dans le critère en ligne 4 de votre sub()
Je débute avec le VBA et cela n'est pas facile....
Je comprends que je dois enlever des guillemets mais je ne sais pas où...
J'ai une autre solution :
Code:
1
2
3
4
5
6 Private Sub Numero_AfterUpdate() If DCount("*", "Jeune", "Numero ='" & Me.Numero & "'") > 0 Then MsgBox "Ce NumeroDossier existe déjà !", vbInformation, " Corrigez la saisie" Cancel = True End If End Sub
J'ai changé le nom du champ : [Numero] au lieu de [N°] et je l'ai mis en texte court au lieu de numérique.
Ce qui m'intéresse est d'avoir les 2 codes enen numérique et texte courtCode:BeforeUpdate()
Merci