Findfirst 错误地匹配长整数

Findfirst matching long integers incorrectly

Objective:使用查询字符串设置记录集,然后执行FindFirst = number在记录集中查找特定ID,并因此记录。

问题:记录集生成正确,但FindFirst始终如一,错误匹配低于特定值的 ID。

描述:当我创建记录集内部(或左侧或右侧)连接任务并Task_Entry匹配特定的 CycleID 和 TaskDataID 值时,我得到一个记录列表(在我的记录集中,我确保 TaskID 没有歧义)。如果我 FindFirst 任何低于 1469 的值,每次都会 FindFirst return 记录 1469。请参阅下面的示例记录和结构。

原始查询(放入CurrentDB.OpenRecordset()):
"SELECT Datetime, TaskDataID, SigID, Task_Entry.* FROM Task INNER JOIN Task_Entry ON Task_Entry.TaskID = Task.TaskID WHERE Task.CycleID = " & inputCycleID & " AND Task.TaskDataID = " & inputTaskDataID & " ORDER BY Task.TaskID"

Table 结构:

示例记录:
任务TaskID、Datetime、TaskDataID、CycleID、SigId
1447 03/09/16 15 7 1495 (TaskDataID 不同)
...其他记录
1469 16 年 3 月 15 日 15 8 1518
...其他记录

Task_Entry: TaskID, Data1, Data2
1447 929 930.5
1469 919 922

疑难解答:

FindFirst 用于记录集并导致 NoMatch 为真时,记录集保留在当前记录上。

在此特定情况下,原始查询过度限制了 TaskDataID 参数上的记录,返回一组不包含要搜索的 ID 的记录。执行 FindFirst 将记录集留在第一条记录上(在本例中是 TaskID = 1469 的记录)。