J'ai une table Table1
dans Access 2016 (clé primaire = Code
) avec les valeurs suivantes:Pourquoi ADO recordset retour plus d'enregistrements que la requête d'accès sous-jacente
=====+=============
Code + Name
=====+=============
A1 | AU All
A2 | AU Large
A3 | AU Size
A4 | Unassigned
=====+=============
Et j'ai une requête, Query1
définie comme :
SELECT Table1.Code
FROM Table1
WHERE (((Table1.Name) Not Like "AU *"));
Dans Access, la requête renvoie 1 enregistrement, comme prévu:
Code
======
A4
======
Mais, quand j'ouvre la requête en utilisant ADO 2.8 ou 6.1, en utilisant ce code:
Option Compare Database
Option Explicit
Sub test()
Dim rst As ADODB.Recordset
Set rst = New ADODB.Recordset
With rst
.Open "Query1", CurrentProject.Connection, adOpenStatic, adLockReadOnly
Do While Not .EOF
Debug.Print .Fields("Code").Value
.MoveNext
Loop
Debug.Print "Record Count : " & .RecordCount
.Close
End With
End Sub
Tous les 4 enregistrements sont renvoyés, comme en témoigne la sortie de débogage:
A1
A2
A3
A4
Record Count : 4
Pourquoi suis-je recevoir des résultats différents?
changer le caractère de wild card de * à% – nazark
@nazark, il est MS Access, pas SQL server! –
Essayez de remplacer le nom de la requête par son contenu! Laissez-moi savoir ce qui se passe. –