Bonjour,
Je travaille sous Access 2003 et j'utilise fréquemment les recordset pour récupérer des éléments dans mes tables, avec ce genre de demande :
en bref : je demande s'il existe l'enregistrement avec les valeurs que j'indique (variables pattern, fitness et tool).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 Dim query2 As String Dim db As DAO.Database, rst As DAO.Recordset, fld As DAO.field Set db = CurrentDb query2 = "SELECT motifs.motif_description" _ & " FROM motifs" _ & " WHERE motifs.motif = " & Chr(34) & Pattern & Chr(34) _ & " AND motifs.fitness = " & fitness _ & " AND motifs.tools_number_tool = " & tool & ";" Set rst = db.OpenRecordset(query2, dbOpenDynaset) If rst.RecordCount = 0 Then ........
Ailleurs dans mon code, ce système fonctionne très bien : soit j'ai un Recordcount = 1 (l'enregistrement existe et je peux l'utiliser) soit Recordcount = 0 (non présent dans ma table).
Voici mon problème : ici, au lieu de me donner Recordcount = 1, il met = 48.
J'ai vérifié la requête en mode création de requête : elle renvoie un seul enregistrement.
J'ai aussi tester pourquoi 48 : il s'avère que celà correspond au critère " AND motifs.tools_number_tool = " & tool & " uniquement (il y a beaucoup plus de 48 enregistrements dans cette table).
Quelqu'un a une idée de l'origine de cette incohérence ?
Partager