Несоответствие типов данных в критерии выражения доступа - PullRequest
0 голосов
/ 19 декабря 2018

Я собираюсь в 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 голосов
/ 20 декабря 2018

Так что, если NOLC в таблице имеет тип text, выражение вашего критерия должно быть:

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

Как вы видите, вы должны окружить значение '.

Примечание: .Value не обязательно, но повышает читабельность и гарантирует, что вас интересует значение, а не сам объект (в этом случае элемент управления).

НО: Вы должны использовать параметризованные запросы вместо конкатенации строк, чтобы избежать внедрения SQL:

Как использовать параметры в VBA в различных контекстах в Microsoft Access?

...