更新が必要な値のパラメーターを受け入れる更新クエリを作成しようとしています。私のクエリ:
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 は、すべてのコントロールにデータがある場合に true になる単なるブール値です。エラーは次のとおりです。
The object does not contain the Automation object "Drew"
Drew は現在のレコードの FName 値です。このエラーは最初の SetParameter コマンドで発生し、私は問題やその修正方法を認識していません。VBAコードの外側でプロンプトを表示すると、クエリは期待どおりに実行されますが、これが機能するために必要なものです。