Я пишу код доступа для добавления и обновления данных из таблицы, но он говорит: "несоответствие данных в выражении критериев".
Возможность Сравнить Базе
Private Sub cmdAdd_Click() If Me.txtPartNumb.Tag & "" = "" Then CurrentDb.Execute "INSERT INTO PartList(PartNumb, PartName, PartCellIDFK)" & _ " VALUES (" & Me.txtPartNumb & ",'" & Me.txtPartName & "','" & Me.txtCellID & "')" Else CurrentDb.Execute "UPDATE PartList" & _ " SET PartNumb=" & Me.txtPartNumb & _ ", PartName='" & Me.txtPartName & "'" & _ ", PartCellIDFK='" & Me.txtCellID & "'" & _ " WHERE PartNumb=" & Me.txtPartNumb.Tag End If cmdClear_Click partsearchsub.Form.Requery End Sub Private Sub cmdClear_Click() Me.txtPartNumb = "" Me.txtPartName = "" Me.txtCellID = "" Me.txtPartNumb.SetFocus Me.cmdAdd.Caption = "Add" Me.cmdEdit.Enabled = True Me.txtPartNumb.Tag = "" End Sub Private Sub cmdClose_Click() DoCmd.Close End Sub Private Sub cmdDelete_Click() If Not (Me.partsearchsub.Form.Recordset.EOF And Me.partsearchsub.Form.Recordset.BOF) Then If MsgBox("Are you sure you want to delete this?", vbYesNo) = vbYes Then CurrentDb.Execute "DELETE FROM PartList" & _ " WHERE PartNumb =" & Me.partsearchsub.Form.Recordset.Fields("PartNumb") Me.partsearchsub.Form.Requery End If End If End Sub Private Sub cmdEdit_Click() If Not (Me.partsearchsub.Form.Recordset.EOF And Me.partsearchsub.Form.Recordset.BOF) Then With Me.partsearchsub.Form.Recordset Me.txtPartNumb = .Fields("PartNumb") Me.txtPartName = .Fields("PartName") Me.txtCellID = .Fields("PartCellIDFK") Me.txtPartNumb.Tag = .Fields("PartNumb") Me.cmdEdit.Enabled = False Me.cmdAdd.Caption = "Update" End With End If End Sub
Что я уже пробовал:
Меня нельзя было перепробовать во многих вещах, потому что я новичок в доступе. Но я смотрел видео, и мои выражения точно такие же, как у человека, описанного в видео. Так что я заблудился и не знаю, что случилось
[no name]
Вы пытаетесь сделать что-то, используя неправильный тип данных.
Suvendu Shekhar Giri
Проверьте все ваши запросы, которые вы использовали в коде, и убедитесь, что все строковые типы данных (varchar, nvarchar и т. д. В БД) должны быть заключены в пару одинарных кавычек (например, 'MyField') или поделитесь с нами своей структурой таблицы.
phil.o
Кроме того, ваш код оставляет дверь широко открытой для атак SQL-инъекций.
Вы должны найти "параметризованный запрос" и исправить его.