1

我对 MS Access 的了解非常有限,但我正在尝试创建一个 AfterInsert 事件。

这是表 (myTable) 上下文——该表将是不同部门的目标列表,并且有一个 Active 列。这将允许部门通过创建新记录来更改其#1 目标,将其设置为目标 = 1,然后将目标 = 1 的旧记录更新为活动 = 假。我们想要目标和优先级(目标编号)的运行历史。

AutoID  Dept  Goal#  Goal               Active
00001   A     1      My first goal      True
00002   A     2      My second goal     True
00003   A     3      My third goal      True

现在,我想添加一条新记录,因为我们更改了目标一。

00004   A     1      My new first goal  True

添加这条新记录后应该做的是设置旧目标1 Active = False。

AutoID  Dept  Goal#  Goal               Active
00001   A     1      My first goal      False
00002   A     2      My second goal     True
00003   A     3      My third goal      True
00004   A     1      My new first goal  True

我一直在尝试调整这种 AfterInsert 格式

LookupRecord In qryDMTermQuery
 Where Condition = [EmployeeID]=[tblTerminations].[EmployeeID]
 Alias
 EditRecord
    Alias
    Comment Block: Set Active field to False
    SetField
    Name: [qryDMTermQuery].[Active]
    Value: False
 End EditRecord

这是我的改编:

LookupRecord In myTable
 Where Condition = [dept]=[myTable].[dept]
                 AND [Goal#] = [myTable].[Goal#]
                 AND [AutoID] != [myTable].[AutoID]
 Alias
 EditRecord
    Alias
    Comment Block: Set Active field to False
    SetField
    Name: [myTable].[Active]
    Value: False
 End EditRecord

这是否有意义/这是在做我希望的事情吗?

4

1 回答 1

1

你快到了。没有必要,[AutoID] != [myTable].[AutoID]因为生成的新 ID 显然与现有的不匹配。或者,您可以使用[AutoID] <> [myTable].[AutoID]

在此处输入图像描述

于 2019-01-10T04:55:29.227 回答