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

标签 excel vba ms-access userform autonumber

我想从 Access 表中获取下一个 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(INSERT、UPDATE、DELETE)而不是 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")

关于excel - 如何从 Access 表中找到下一个 ID 自动编号并在 Excel 用户表单中显示该编号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62327185/

相关文章:

arrays - VBA获取数组中Dim的名称,在索引处

sql - 来自多个表的关联 SQL 连接查询

mysql - 在 Access 中为链接表选择 @@Identity 返回 0

excel - 如何在 Excel VBA 中循环创建新词典的集合?

ms-access - 全局点击事件处理程序(WithEvents)

vba - ACCESS VBA - 获取无线网络名称(已连接)

visual-studio - 如何从 Visual Studio C# 使用 Office?

具有动态行参数的 Excel OFFSET 函数

PHPexcel获取最高工作表索引范围

variables - 在 VBA 中将变量连接到要设置为范围的字符串中