我要去VBA删除数据表。
它显示了屏幕截图中显示的错误。
请帮助我解决该问题。
Private Sub cmdxoa_Click()
If Not (Me.frmformsub1.Form.Recordset.EOF And Me.frmformsub1.Form.Recordset.BOF) Then
If MsgBox("Do you wwant to delete ?", vbYesNo) = vbYes Then
CurrentDb.Execute "DELETE from db " & _
" where NOLC = " & Me.frmformsub1.Form.Recordset.Fields("nolc")
Me.frmformsub1.Form.Requery
End If
End If
End Sub
答案 0 :(得分:1)
因此,如果表中的NOLC
是文本类型,则您的条件表达式必须为:
"where NOLC = '" & Me.frmformsub1.Form.Recordset.Fields("nolc").Value & "'"
如您所见,必须用'
括住该值。
注释:.Value
不是必需的,但是它提高了可读性,并确保您对值感兴趣,而不对对象本身(在这种情况下为控件)感兴趣。
BUT :您应该使用参数化查询而不是字符串连接来避免SQL注入:
How do I use parameters in VBA in the different contexts in Microsoft Access?