使用 VBA 在 table 而非表单中设置复选框

Use VBA to set checkbox in table not form

SAVE 按钮的代码中,我想保存记录,并在特定 table 中标记一个复选框,该复选框与 table我正在保存记录。它基本上就像一个清单 table 来指示已经完成的事情。我知道 -1 代表复选标记所以我试过:

Me.tblProjectCompletion.Done = -1

我试过没有 Me

我也试过先把它放到一个表格中,然后再保存到 table 中,但这导致了其他问题。如果我能在table我想要的项目ID中保存复选标记那将是最好的,所以我也尝试过:

if ProjectCompletion.ProjectCompID = Project.ProjectID then tblProjectCompletion.Done = -1

但是这样的代码也不起作用。有什么建议吗?

Currentdb.Execute
Update ProjectCompletion
Set [ProjectCompletion].[Done] = -1
WHERE [ProjectCompletion].[ProjectCompID] = [Project].[ProjectID]

我试过这段代码有和没有括号和引号,末尾有分号。使用此模式,它会在执行时停止并显示 argument not optional。以下代码有效。我只需要添加复选框的检查。

Private Sub Save_Record_Click()
DoCmd.RunCommand acCmdSaveRecord
If Me.Dirty Then
Me.Dirty = False
End If
End Sub

好的,所以我猜这是一个表单模块。问题是它不知道你要更新什么记录所以你需要使用 CurrentRecord 属性

CurrentDb.Execute "UPDATE ProjectCompletion SET [ProjectCompletion].[Done] = -1 WHERE [ProjectCompletion].[ProjectCompID] = " & Me.Recordset.Fields("ProjectID").Value