У меня есть приложение MS Access с базой данных MySQL. Я перепробовал множество способов из Переполнения стека, но не могу получить первичный ключ вновь добавленной строки.
Я перепробовал все, что смог найти, но безуспешно.
Set pxRST = db.OpenRecordset("SELECT * from tblPatients WHERE dispenseID = " & oPxID & " AND ChemistID = " & chemID, dbOpenDynaset, dbSeeChanges)
if pxrst.eof then
pxRST.AddNew
pxRST("dispenseid") = oPxID
pxRST("chemistID") = chemID
pxRST("firstname") = firstName
pxRST("lastname") = lastName
pxRST("address") = Address
pxRST("postcode") = postcode
pxRST("phonenumber") = phonenumber
pxRST.Update
pxRST.Bookmark = pxRST.LastModified
gPxID = pxRST!PatientID
Debug.Print gPxID
end if
Это дало ошибка "запись удалена"
Я также пытался использовать тот, который имел
gPxID = currentdb.openrecordset("SELECT @@identity").value(0)
Это просто игра меня 0 в качестве цифры
Я сделал go в MYSQL верстак и попробуйте
INSERT INTO tblpatients
SELECT @@IDENTITY
, и я действительно получил новый идентификатор записи.
Так что я очень старался и так далеко, но я просто не могу понять это из здесь и как заставить это работать в VBA.
В настоящее время я работаю над использованием QueryDefs, но я очень новичок в этом и на самом деле не получил его, я не думаю.
Dim qdf2 As DAO.QueryDef
strSQL = "INSERT INTO tblPatients (dispenseid,chemistID,firstname,lastname,address,postcode,phonenumber) " & _
"VALUES (" & oPxID & "," & chemID & ",'" & firstName & "','" & lastName & "','" & Address & "','" & postcode & "','" & phonenumber & "' )"
Set qdf2 = db.QueryDefs("quGetPxDetails")
With qdf2
.SQL = strSQL
.Connect = oCon
qdf2.Execute
End With