Data type miss match in criteria exxpression access

I am going to VBA for deleting data table.

It shows the errors shown in the screenshot.

Please help me to resolve it.

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

Upvotes: 0

Views: 91

Answers (1)

AHeyne
AHeyne

Reputation: 3455

So if NOLC in the table is of type text, your criteria expression has to be:

"where NOLC = '" & Me.frmformsub1.Form.Recordset.Fields("nolc").Value & "'"

As you see you have to surround the value with '.

Remark: .Value isn't necessary, but it enhances the readability and assures that you are interested in the value and not in the object itself (the control in that case).

BUT: You should use parametrized queries instead string concatenation to avoid SQL injection:

How do I use parameters in VBA in the different contexts in Microsoft Access?

Upvotes: 1

Related Questions