我想删除数据库中的某些东西,后面跟着一个VBA。
不幸的是,它给了我一个运行时错误,我不知道为什么。我看了Access如何返回SQL语句,在SQL Server中它没有给我任何错误。
VBA:
Private Sub btnDeleteTaak_Click()
If Not IsNull(Me.lstTaakMonteur) Then
If Not IsNull(Me.comboMonteur.Value) Then
If Not IsNull(Me.comboOpdracht.Value) Then
Dim DeleteSQL As String
DeleteSQL = "DELETE OpdrachtTaak WHERE opdrachtnr = " & Me.comboOpdracht.Value & " AND taaknr = " & Me.lstTaakMonteur.Value & " AND monteurcode = '" & Me.comboMonteur.Value & "'"
DoCmd.RunSQL (DeleteSQL)
Me.lstTaakMonteur.Requery
Else
MsgBox ("Er is geen opdracht geselecteerd")
End If
Else
MsgBox ("Er is geen monteur geselecteerd")
End If
Else
MsgBox ("Er is geen taak geselecteerd")
End If
End Sub
错误:
Syntax error (missing operator) in query expression 'OpdrachtTaak WHERE opdrachtnr = 1 AND taaknr = 6 AND monteurcode = 'LM1"
表结构OpdrachtTaak:
opdrachtnr NUMERIC(5) <pk,fk2> NOT NULL
taaknr NUMERIC(3) <pk, fk3> NOT NULL
tijdsduur NUMERIC(4,1) NULL
Monteurcode VARCHAR(3) <fk1> NULL
如果你可以帮助我,那会很棒。
答案 0 :(得分:1)
MS Access数据库中的删除语句与SQL Server中的语句完全不同。 在MS Access中,您必须在删除查询中包含From语句。所以你的代码将是:
DeleteSQL = "DELETE * FROM OpdrachtTaak WHERE opdrachtnr = " & Me.comboOpdracht.Value & " AND taaknr = " & Me.lstTaakMonteur.Value & " AND monteurcode = '" & Me.comboMonteur.Value & "'"