我无法使用此 MS Access SQL UPDATE 语句
I can't get this MS Access SQL UPDATE statement to work
我目前正在 MS Access 中制作案例跟踪器,但无法使位于子表单中的以下 UPDATE
代码正常工作。我试过谷歌搜索但无济于事。
所有数据都存储在名为 tblCaseTrackerLoad
的主 table 中。 table 中有 98 列。我还有一个名为 tblBulkAssign subform
的子表单,它使用以下查询(位于“数据”选项卡的“记录源”字段中)从 tblCaseTrackerLoad
中的 5 列中读取:
SELECT tblCaseTrackerLoad.[Select], tblCaseTrackerLoad.[Case Status], tblCaseTrackerLoad.
[Customer Name], tblCaseTrackerLoad.Account_Key, tblCaseTrackerLoad.[Case_Owner] FROM
tblCaseTrackerLoad WHERE (((tblCaseTrackerLoad.[Case Status])="To be assigned"));
字段类型如下:
tblCaseTrackerLoad.[Select]
是一个 Yes/No 字段
tblCaseTrackerLoad.[Case Status]
是短文本字段
tblCaseTrackerLoad.[Customer Name]
是短文本字段
tblCaseTrackerLoad.Account_Key
是大数字段
tblCaseTrackerLoad.[Case_Owner]
是短文本字段
以上代码运行良好,当加载子表单时,我可以看到“Case Status = To Be Assigned”所在的数据行。这以 table 格式显示。
我试图在加载子表单时发生的事情,用户在 Select 字段中勾选框(根据需要多选或少选) select),然后他们单击一个按钮,该按钮加载一个不同的表单,其中包含案例可以分配给的所有用户。用户被 selected 然后代码执行并且应该通过更新语句将案例分配给用户以更新 table“tblCaseTrackerLoad”。
这是我执行 UPDATE
语句的代码:
strSQL = "UPDATE tblCaseTrackerLoad SET [Case_Owner] = " & "'" &
txtAssignToFromAssignToUserForm & "'" & ", [Case Status] = ""Assigned"", tblCaseTrackerLoad.
[Date Assigned] = " & Assigned Timestamp & ", WHERE [Select] = Yes AND [Case_Owner] IS NULL;"
Debug. Print strSQL
' Execute the SQL Command
DoCmd.RunSQL strSQL
当 运行 时,我得到的错误是“运行-Time error '3144': UPDATE 语句中的语法错误。”
这是调试的输出。打印
UPDATE tblCaseTrackerLoad SET [Case_Owner] = 'Craig Hogan', [Case Status] = "Assigned", tblCaseTrackerLoad.[Date Assigned] = 10/02/2022 07:36:13, WHERE [Select] = Yes AND [Case_Owner] IS NULL;
供参考:
txtAssignToFromAssignToUserForm
是从表单传递给 select 将案例分配给谁的值,返回到此子表单。此框正在成功接收用户名。
AssignedTimeStamp
是 UPDATE
查询上方的一段代码,上面写着 Dim AssignedTimeStamp As Date AssignedTimeStamp = Now
尽管 tblCaseTrackerLoad.[Date Assigned]
字段未在子表单中引用,但它在主 table tblCaseTrackerLoad
中仍然是一个有效字段,并且类型为“Date/Time” .
这肯定是一些愚蠢的小事,我没有做过,但我已经花了大约。现在花了 4 个小时试图解决这个问题,但似乎找不到解决方案。
有人可以告诉我哪里做错了吗?
“WHERE”子句前有一个逗号。删除那个逗号。
UPDATE tblCaseTrackerLoad
SET [Case_Owner] = 'Craig Hogan', [Case Status] = "Assigned", tblCaseTrackerLoad.[Date Assigned] = 10/02/2022 07:36:13
WHERE [Select] = Yes AND [Case_Owner] IS NULL;
我目前正在 MS Access 中制作案例跟踪器,但无法使位于子表单中的以下 UPDATE
代码正常工作。我试过谷歌搜索但无济于事。
所有数据都存储在名为 tblCaseTrackerLoad
的主 table 中。 table 中有 98 列。我还有一个名为 tblBulkAssign subform
的子表单,它使用以下查询(位于“数据”选项卡的“记录源”字段中)从 tblCaseTrackerLoad
中的 5 列中读取:
SELECT tblCaseTrackerLoad.[Select], tblCaseTrackerLoad.[Case Status], tblCaseTrackerLoad.
[Customer Name], tblCaseTrackerLoad.Account_Key, tblCaseTrackerLoad.[Case_Owner] FROM
tblCaseTrackerLoad WHERE (((tblCaseTrackerLoad.[Case Status])="To be assigned"));
字段类型如下:
tblCaseTrackerLoad.[Select]
是一个 Yes/No 字段
tblCaseTrackerLoad.[Case Status]
是短文本字段
tblCaseTrackerLoad.[Customer Name]
是短文本字段
tblCaseTrackerLoad.Account_Key
是大数字段
tblCaseTrackerLoad.[Case_Owner]
是短文本字段
以上代码运行良好,当加载子表单时,我可以看到“Case Status = To Be Assigned”所在的数据行。这以 table 格式显示。
我试图在加载子表单时发生的事情,用户在 Select 字段中勾选框(根据需要多选或少选) select),然后他们单击一个按钮,该按钮加载一个不同的表单,其中包含案例可以分配给的所有用户。用户被 selected 然后代码执行并且应该通过更新语句将案例分配给用户以更新 table“tblCaseTrackerLoad”。
这是我执行 UPDATE
语句的代码:
strSQL = "UPDATE tblCaseTrackerLoad SET [Case_Owner] = " & "'" &
txtAssignToFromAssignToUserForm & "'" & ", [Case Status] = ""Assigned"", tblCaseTrackerLoad.
[Date Assigned] = " & Assigned Timestamp & ", WHERE [Select] = Yes AND [Case_Owner] IS NULL;"
Debug. Print strSQL
' Execute the SQL Command
DoCmd.RunSQL strSQL
当 运行 时,我得到的错误是“运行-Time error '3144': UPDATE 语句中的语法错误。”
这是调试的输出。打印
UPDATE tblCaseTrackerLoad SET [Case_Owner] = 'Craig Hogan', [Case Status] = "Assigned", tblCaseTrackerLoad.[Date Assigned] = 10/02/2022 07:36:13, WHERE [Select] = Yes AND [Case_Owner] IS NULL;
供参考:
txtAssignToFromAssignToUserForm
是从表单传递给 select 将案例分配给谁的值,返回到此子表单。此框正在成功接收用户名。AssignedTimeStamp
是UPDATE
查询上方的一段代码,上面写着Dim AssignedTimeStamp As Date AssignedTimeStamp = Now
尽管 tblCaseTrackerLoad.[Date Assigned]
字段未在子表单中引用,但它在主 table tblCaseTrackerLoad
中仍然是一个有效字段,并且类型为“Date/Time” .
这肯定是一些愚蠢的小事,我没有做过,但我已经花了大约。现在花了 4 个小时试图解决这个问题,但似乎找不到解决方案。
有人可以告诉我哪里做错了吗?
“WHERE”子句前有一个逗号。删除那个逗号。
UPDATE tblCaseTrackerLoad
SET [Case_Owner] = 'Craig Hogan', [Case Status] = "Assigned", tblCaseTrackerLoad.[Date Assigned] = 10/02/2022 07:36:13
WHERE [Select] = Yes AND [Case_Owner] IS NULL;