从表单更新非当前记录

时间:2018-09-17 17:47:10

标签: ms-access access-vba

我有一个Access form ,它可以查询表中的项目。例如,如果这是我的桌子:

ID | Type | Active | Leading | DaysBehind
1     A      Yes       Yes      0
2     A      Yes       No       20
3     A      Yes       No       40
4     B      Yes       Yes      0
5     B      Yes       No       30
6     C      Yes       Yes      0

然后搜索(在我的表单上为 )Type = A,返回:

txtID | cmbType | cmbActive | cmbLeading | txtDaysBehind
  1        A         Yes         Yes        0
  2        A         Yes         No         20
  3        A         Yes         No         40

我想编写On Change VBA代码,以便当我将ID 1更改为Active = No时,会发生以下情况:ID 1 Leading = No和ID 2 Leading = Yes(因为这是最少的日子)。

由于ID 1是我当前的记录,因此此代码很容易:

cmbLeading = "No"

我编写了将ID 2标识为新领导者的代码。

rs = CurrentDB.OpenRecordset("SELECT ID FROM table WHERE Type='A' AND Active='Yes' ORDER BY DaysBehind")

如何更改ID 2的前导值?我已经尝试过了:

CurrentDb.Execute "UPDATE table SET table.Leading='Yes' WHERE table.ID=2"

它没有对表做任何更改,我猜这是因为我在表单中打开了记录。我需要在表格上进行更改吗?如果是这样,如何更改非当前记录?

1 个答案:

答案 0 :(得分:0)

我终于想通了。我需要包含一个me.dirty = false来解锁表。特别是,如果我是me.dirty,则输入me.dirty = false。