使用SQL更新查询

时间:2014-04-21 06:21:33

标签: sql access-vba ms-access-2013

有人可以快速查看我在下面写的查询。这个查询假设要做的一个概要是把两个字符放在" 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

3 个答案:

答案 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)

WHEREQuery04priorityselect = 'xx'之间不需要&amp; 试试这个

Dim HighPriority
    HighPriority = "UPDATE tblsearchengine01 SET Query04priorityselect = 'xx'  WHERE Priority<>'high'"
    CurrentDb.Execute HighPriority