我正在尝试创建一个更新查询,该查询接受需要更新的值的参数。我的查询:
PARAMETERS FirstName Text ( 255 ), LastName Text ( 255 ), AccessLevel Short;
UPDATE
tblUser SET tblUser.FName = [FirstName],
tblUser.LName = [LastName],
tblUser.AccessLevelID = [AccessLevel]
WHERE (((tblUser.UserID)=[Forms]![frmEditUser]![subfrmUsers].[Form]![UserID]));
我的 VBA 代码在用户按下编辑按钮时运行:
If valid Then
DoCmd.SetParameter "FirstName", Forms!frmEditUser!txtFName
DoCmd.SetParameter "LastName", Forms!frmEditUser!txtLName
DoCmd.SetParameter "AccessLevel", Forms!frmEditUser!cmbAccessLevel
DoCmd.OpenQuery ("qryEditUserRecord")
MsgBox "Success: Record edits have been applied", _
vbOKOnly, "Record Edits Success"
Me.Refresh
End If
valid 只是一个布尔值,当所有控件都有数据时为真。错误是:
The object does not contain the Automation object "Drew"
其中 Drew 是当前记录的 FName 值。此错误发生在第一个 SetParameter 命令中,我不知道该问题或如何解决它。如果我在 VBA 代码之外提示,则查询将按预期运行,但这正是我需要这样做的。