目标:使用查询字符串设置记录集,然后执行FindFirst = number
以查找特定ID,从而记录在记录集中。
问题:记录集生成正确但FindFirst
一致,错误地匹配低于特定值的ID。
描述:当我创建一个记录集内部(或左或右)连接Task和Task_Entry匹配特定的CycleID和TaskDataID值时,我得到一个记录列表(在我的记录集中,我确保TaskID isn&# 39;暧昧)。如果我FindFirst
任何低于1469的值,FindFirst
每次都会返回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"
表格结构:
示例记录:
任务: TaskID,Datetime,TaskDataID,CycleID,SigId
1447 03/09/16 15 7 1495 (TaskDataID不同)
......其他记录
1469 03/15/16 15 8 1518
......其他记录
Task_Entry : TaskID,Data1,Data2
1447 929 930.5
1469 919 922
疑难解答:
FindFirst
执行rst.FindFirst "TaskID = " & inputTaskID
,其中inputTaskID是变体。
"SELECT Datetime, TaskDataID, SigID, Task_Entry.* FROM Task INNER JOIN Task_Entry ON Task_Entry.TaskID = Task.TaskID WHERE Task.TaskID = " & inputTaskID
答案 0 :(得分:0)
在记录集上使用FindFirst
并导致NoMatch
为真时,记录集仍保留在当前记录中。
在这种特定情况下,原始查询过度约束TaskDataID参数上的记录,返回一组不包含要搜索的ID的记录。执行FindFirst
会将记录集留在第一条记录上(在本例中是TaskID = 1469的记录集)。