Access 2007:通过前端编辑链接 table 中的所有记录

Access 2007: Editing all records in a linked table On Click via the front end

我在表单上有一个按钮,可以 运行 一个数据宏来标记今天日期之前的所有记录。换句话说:

For Each Record in TblEvents
 Where Condition = [TblEvents].[EndDate]<Date()
 Edit Record
   Set Field [TblEvents].[passed]=True

当我拆分数据库时,表单上的按钮停止工作 (d'oh)。

不知何故我仍然需要这个功能。这可能吗?我才刚刚开始学习 VBA,但我知道 setField 和 editRecord 选项在构建器的数据宏之外是不存在的。

看起来您的宏操作可以轻松转换为 Access SQL UPDATE,假设 TblEvents 现在是 link table 在您的后端数据库中。您可以从 DAO.Database 对象引用执行该语句。

在您的命令按钮的单击事件中包含与此类似的代码:

Dim strUpdate As String
Dim db As DAO.Database

strUpdate = "UPDATE TblEvents" & vbCrLf & _
    "SET [Passed] = True" & vbCrLf & _
    "WHERE [EndDate] < Date();"
Debug.Print strUpdate  '<- examine completed statement text in Immediate window
                       ' Ctrl+g will take you there
Set db = CurrentDb
db.Execute strUpdate, dbFailOnError
MsgBox db.RecordsAffected & " row(s) updated."