如何从访问 table 中找到下一个 ID 自动编号并在 Excel 用户表单中显示该编号?

How to find the next ID auto number from access table and display the number in an Excel userform?

我想从访问 table 中获取下一个 ID 自动编号,并将其显示在 excel 用户表单的文本框中。我已经找到了这段代码,并且已经尝试过了,但是我什么也没有得到,完全迷路了。如果有人能指出正确的方向来解决它,我将不胜感激。

    Dim con As Object: Set con = CreateObject("ADODB.Connection")
    Dim rs As Object: Set rs = CreateObject("ADODB.Recordset")
    Dim sql As String

    connectionstring = "PROVIDER=Microsoft.ACE.OLEDB.12.0;"
    connectionstring = connectionstring & "DATA Source=C:\Users\MyPc\Desktop\Database1.accdb;"
    con.Open connectionstring

    sql = "select max(ID) as maxvalue from TableOne"

    con.Execute sql

    NextValue = (maxvalue) + 1

     MsgBox NextValue
     userform1.textbox2.value = NextValue
     rs.Close
     Set rs = Nothing

执行是针对操作 SQL(插入、更新、删除)而不是 SELECT。使用 SELECT 打开记录集对象然后从记录集中读取数据。

    Dim con As Object: Set con = CreateObject("ADODB.Connection")
    Dim rs As Object: Set rs = CreateObject("ADODB.Recordset")
    Dim sql As String

    connectionstring = "PROVIDER=Microsoft.ACE.OLEDB.12.0;"
    connectionstring = connectionstring & "DATA Source=C:\Users\MyPc\Desktop\Database1.accdb;"
    con.Open connectionstring

    sql = "select max(ID) as maxvalue from TableOne"

    rs.Open sql, con, adOpenStatic, adLockReadOnly 

    NextValue = (rs!maxvalue) + 1

    MsgBox NextValue
    userform1.textbox2.value = NextValue
    rs.Close
    Set rs = Nothing

由于只需要一个值,请考虑替代方案:

Dim appAccess As Object
Set appAccess = CreateObject("Access.Application")
appAccess.OpenCurrentDatabase ("C:\Users\MyPc\Desktop\Database1Umpires.accdb")
userform1.textbox2.value = appAccess.DMax("ID", "TableOne")