我有一个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"
它没有对表做任何更改,我猜这是因为我在表单中打开了记录。我需要在表格上进行更改吗?如果是这样,如何更改非当前记录?
答案 0 :(得分:0)
我终于想通了。我需要包含一个me.dirty = false来解锁表。特别是,如果我是me.dirty,则输入me.dirty = false。