Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Calcul de nombre d'enregistrements dans une table avec critère paramétré en Visual Basic

1 réponse
Avatar
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.

Maurice

1 réponse

Avatar
3stone
Salut,

"Maurice KRAIT"

[...]
' Vérifie que le nom n'existe pas déjà dans la table GENERALE
K = DCount("[NomG]", "Générale", "[NomG] = ZNom) '




K = DCount("[NomG]", "Générale", "[NomG]='" & ZNom &"'" )



PS: Les "GOTO machin" sont vraiment à proscrire de tout code...
hormis les incontournables "On error goto machin"



--
A+
Pierre (3stone) Access MVP
-----------------------------
http://users.skynet.be/mpfa
-----------------------------