在MS Access中使用VBA获取MYSQL的新添加的AutoID

问题描述 投票:0回答:2

所以我有一个带有MYSQL数据库的Access App。我已经尝试了Stack Overflow的多种方法,但是无法获得新添加行的主键!

我尝试了所有我能找到的一切,没有运气:(

    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作为数字

我确实进入了MYSQL工作台并尝试

INSERT INTO tblpatients
SELECT @@IDENTITY

我直接获得新记录的ID ...

所以我已经尽力而为了,但是我无法从这里弄清楚它以及如何在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

任何帮助都会很棒。我似乎无法正确解决这个问题!

所以我有一个带有MYSQL数据库的Access App。我已经从Stack Overflow尝试了多种方法,但是无法获得新添加行的主键!我尝试了所有我能找到的一切,没有运气:( ...

mysql vba ms-access primary-key
2个回答
0
投票

而是取决于您的tblPatients是否具有自动递增主键。如果是这样,则您不应该手动为其分配值,即您的


0
投票

所以我的回答来自ComputerVersteher和User2834566信息。

© www.soinside.com 2019 - 2024. All rights reserved.