有人可以快速查看我在下面写的查询。这个查询假设要做的一个概要是把两个字符放在" xx"在现场" Query04priorityselect"对于所有记录,其中priority =" high"。似乎除了倒数第二行之外,所有工作都有效。我得到的错误信息是"语法错误,缺少运算符"在执行查询时。 谢谢,
Private Sub Opzione61_GotFocus()
' identifies table to be updated
Dim Recordset
Set Recordset = CurrentDb.OpenRecordset("tblsearchengine01")
' puts a 1 value in the field Query04PrioritySelect for all records
Dim ClearPriority
ClearPriority = "UPDATE tblsearchengine01 SET Query04priorityselect=1"
' Run the command. / perform the update
CurrentDb.Execute ClearPriority
Dim HighPriority
HighPriority = "UPDATE tblsearchengine01 SET Query04priorityselect = ""xx"" & WHERE Priority<>high"
CurrentDb.Execute HighPriority
End Sub
答案 0 :(得分:2)
Dim HighPriority
HighPriority = "UPDATE tblsearchengine01 SET Query04priorityselect ='xx' WHERE Priority<>high "
CurrentDb.Execute HighPriority
答案 1 :(得分:2)
我认为您需要在WHERE
子句中引用 high 这个词。 Access SQL语句中的单引号很好。
HighPriority = "UPDATE tblsearchengine01" & vbCrLf & _
"SET Query04priorityselect = 'xx' WHERE Priority <> 'high'"
Debug.Print HighPriority
CurrentDb.Execute HighPriority
如果查询仍然抛出错误,请转到立即窗口并复制从Debug.Print
输出的语句文本。然后,您可以在Access查询设计器中创建一个新查询,将其切换到SQL视图,粘贴复制的文本并测试该语句。希望您能弄清楚如何修复错误。如果没有,请复制语句文本并将其包含在您的问题中。
答案 2 :(得分:1)
WHERE
和Query04priorityselect = 'xx'
之间不需要&amp;
试试这个
Dim HighPriority
HighPriority = "UPDATE tblsearchengine01 SET Query04priorityselect = 'xx' WHERE Priority<>'high'"
CurrentDb.Execute HighPriority