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."
我在表单上有一个按钮,可以 运行 一个数据宏来标记今天日期之前的所有记录。换句话说:
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."