Calcul de nombre d'enregistrements dans une table avec critère paramétré en Visual Basic
1 réponse
Maurice KRAIT
Bonjour,
J'utilise ACCESS97.
J'ai une table GENERALE comportant , entre autres , un champ NOMT et une
table NOUVELLE comportant un champ NOMN et devant servir à mettre à jour
la table GENERALE.
Je dois vérifier pour chaque enregistrement de NOUVELLE si le contenu du
champ existe déjà dans le champ NOMG de GENERALE.
J'utilise pour celà la fonction DCount pour calculer le nombre
d'occurences de champ NOMG ayant un contenu identique au champ NOMN de
l'enregistrement de NOUVELLE en cours d'examen .
Je n'ai pas trouvé le moyen de faire fonctionner la fonction DCount et
j'obtient un message d'erreur.
Voici mon programme :
_______________________________________________________
Dim NomTable As String
Dim ZNom As String
Dim K As Integer
Dim DBx As Database
Dim RC As Recordset
Set DBx = CurrentDb
NomTable = "NOUVELLES"
Set RC = DBx.OpenRecordset(NomTable, dbOpenTable)
If RC.BOF Then GoTo NEXTRC 'la requête est vide
RC.MoveFirst ' positionne au début de la
table dynamique
Do Until RC.EOF ' boucle sur tous les
enregistrements
ZNom = RC("NomN") ' champ d'un enregistrement de
NOUVELLE
If (ZNom = "") Or IsNull(ZNom) Then GoTo
NEXTRC ' passe à la fiche suivante
' Vérifie que le nom n'existe pas déjà dans la table GENERALE
K = DCount("[NomG]", "Générale", "[NomG] = ZNom) '
If K <> 0 Then GoTo NEXTRC ' pas de traitement si champ
existe déjà
' TRAITEMENT pour nouveau champ
.................................................................................................
End If
NEXTRC: RC.MoveNext
Loop ' Fin de la boucle sur les enregistrements
de FGF nouvelles
____________________________________________________________________
J'obtient le message d'erreur suivant : il n' y a pas d'objet
d'automation ZNom .
J'ai essayé également la syntaxe suivante :
K = DCount("[NomG]", "Générale", "[NomG] = " & ZNom)
Cette fois le message d'erreur dit qu'il n'y a pas d'objet d'automation
TOTO ( TOTO étant le contenu du champ NOMN du premier enregistrement à
traiter.
Je remercie d'avance ceux qui pourraient m'indiquer la solution.