Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > VBA Access
VBA Access Le forum pour les questions relatives au code VBA sous Access, et à son environnement de développement VBE.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/08/2011, 12h11   #1
Membre régulier
 
Inscription : mai 2004
Messages : 337
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 337
Points : 90
Points : 90
Par défaut Exclus enregistrement en cours dans comptage

Bonjour,
Je développe avec Access 2003 sous Windows XP Pro.
Mon but est de vérifier si une personne existe déjà dans la base de donnée avant de valider.
Le critère ne se base pas sur l'orthographe exact mais sur une ressemblance.

Pour se faire, j'ai utilisé la fonction Dcount.
ça fonctionne plus ou moins, le problème réside dans la modification d'une personne.
Lors de l'enregistrement des modifications, la fonction dcount renvois 1, car elle comptabilise l'enregistrement en cours.
Y a-t-il un moyen d'exclure l'enregistrement en cours de Dcount ?
Ou peut-on procéder différemment pour contourner ce problème ?

Si vous avez une idée, je suis preneur.
Merci
Willy
willytito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 13h37   #2
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
DCount()-1

Autre solution changer ton critère pour exclure l'égalité exacte ex :

Code :
"[TonNom] like ""*" & TonNomCherche & "*"" and not ([TonNom] = """ &  TonNomCherche & """)"
Enfin tu peux simplement réagir si DCount()>1. Personnelement je choisirai celle-ci qui a le moins d'impact sur ma logique de traitement.

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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 14h16   #3
Membre régulier
 
Inscription : mai 2004
Messages : 337
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 337
Points : 90
Points : 90
Par défaut Complément

Salut,
L'idée de Dcount() - 1 ou Dcounr() > 1 n'est pas mal.
Mais dans mon cas ça ne fonctionnera qu'à moitié:
ça fonctionnera uniquement pour la modification.
Dans un ajout, il va me zapper le 1er enregistrement commun.

Plus de précision sur mon problème :
Une table "T_Personne" avec les champs ("Idt_Personne", "Nom_Personne", "Prenom_Personne")
Cette table est liée à un formulaire avec des zones de texte "Txt_Nom" et "Txt_Prenom" et un bouton "Btn_enregistrer".

La recherche de doublon s'effectue uniquement sur le champs "Txt_Nom"
C'est une recherche large avec "like" et le caractère "*" de chaque côté.

Je voudrais contrôler les noms similaires après un ajout ou une modification.
Pour éviter l'apparition de doublon après chaque modification, il me faut exclure l'enregistrement en cours.

En espérant que c'est plus clair, ce n'est pas évident à expliquer.
Willy
willytito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 14h21   #4
Modérateur
 
Homme René MAROT
Inscription : octobre 2005
Messages : 5 470
Détails du profil
Informations personnelles :
Nom : Homme René MAROT
Localisation : Canada

Informations forums :
Inscription : octobre 2005
Messages : 5 470
Points : 7 552
Points : 7 552
Si tu as une clef pour ton energistrement tu peux l'exclure de ta recherche comme ceci :

Code :
"[TonNom] like ""*" & TonNomCherche & "*"" and [TaClefEnr] <> " & me.TaclefEnr
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.
marot_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 14h39   #5
Membre régulier
 
Inscription : mai 2004
Messages : 337
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 337
Points : 90
Points : 90
Par défaut Merci

Je vais tester
ça devrait fonctionner !
Merci pour cette idée
A plus
Willy
willytito est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 15h12   #6
Membre régulier
 
Inscription : mai 2004
Messages : 337
Détails du profil
Informations forums :
Inscription : mai 2004
Messages : 337
Points : 90
Points : 90
Par défaut Résolu

Encore merci.
C'est exactement ce que je voulais !
Willy
willytito est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h57.


 
 
 
 
Partenaires

Hébergement Web