我有这个UPDATE查询的问题,我有关于语法错误查询的消息。我认为这个查询是正确的,我无法找到导致此错误的内容。
Private Sub cmdModifyBook_Click() 'approves modifying books to the database
Dim str As String
Dim dbs As DAO.Database
Set dbs = CurrentDb()
'checks if the typed all the data of book
If (Me.txtModifyTitle.Value = "") Or (Me.txtModifyTitleWeb.Value = "") Or (Me.txtModifyVerkaufpreis.Value = "") _
Or (Me.txtModifyThemengruppe.Value = "") Then
MsgBox "Nicht alle von Ihnen eingegebenen Daten"
Exit Sub
End If
str = " UPDATE Katalog " _
& "(Bezeichnung, BezeichnungWeb, Verkaufspreis, Themengruppe) SET " _
& "('" & Me.txtModifyTitle.Value & "', '" & Me.txtModifyTitleWeb.Value & "', '" & Me.txtModifyVerkaufpreis.Value & "', '" & Me.txtModifyThemengruppe.Value & "') WHERE ID_Buch =" & Me.lblModifyID.Caption & ";"
dbs.Execute str, dbFailOnError
MsgBox "Das Buch wurde in der Datenbank geändert", vbInformation
dbs.Close
Set dbs = Nothing
End Sub
答案 0 :(得分:1)
您的代码应该是这样的:
Private Sub cmdModifyBook_Click() 'approves modifying books to the database
Dim str As String
Dim dbs As DAO.Database
Set dbs = CurrentDb()
'checks if the typed all the data of book
If (Me.txtModifyTitle.Value = "") Or (Me.txtModifyTitleWeb.Value = "") Or (Me.txtModifyVerkaufpreis.Value = "") _
Or (Me.txtModifyThemengruppe.Value = "") Then
MsgBox "Nicht alle von Ihnen eingegebenen Daten"
Exit Sub
End If
str = "UPDATE Katalog " & _
"SET Bezeichnung = '" & PQ(Me.txtModifyTitle.Value) & "', " & _
"BezeichnungWeb = '" & PQ(Me.txtModifyTitleWeb.Value) & "', " & _
"Verkaufspreis = '" & PQ(Me.txtModifyVerkaufpreis.Value) & "', " & _
"Themengruppe = '" & PQ(Me.txtModifyThemengruppe.Value) & "' " & _
"WHERE ID_Buch = " & Me.lblModifyID.Caption & ";"
Debug.Print str
MsgBox str
dbs.Execute str, dbFailOnError
MsgBox "Das Buch wurde in der Datenbank geändert", vbInformation
dbs.Close
Set dbs = Nothing
End Sub
Private Function PQ(s as string) as String
PQ = Replace(s, "'", "''")
End Function
请注意,您需要使用两个单引号替换文本框中值中可能存在的任何单引号,以防止SQL错误。这就是我发布PQ功能的原因。
答案 1 :(得分:-1)
UPDATE命令语法如下
UPDATE Katalog
SET
Bezeichnung = Me.txtModifyTitle.Value ,
BezeichnungWeb = Me.txtModifyTitleWeb.Value ,
Verkaufspreis = Me.txtModifyVerkaufpreis.Value,
Themengruppe = Me.txtModifyThemengruppe.Value
WHERE ID_Buch = Me.lblModifyID.Caption
当然上面的内容现在可以使用,因为你必须将它用于str变量