条件表达式访问中的数据类型未匹配

时间:2018-12-19 15:54:58

标签: access

我要去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

theme css errror here

1 个答案:

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