MS Access未打开时,DMax功能不起作用

时间:2015-07-29 10:51:56

标签: database vba excel-vba ms-access excel

我在VBA中编写代码,允许使用MS Excel中的用户表单在数据库中添加新用户。提交表单后,必须自动更新数据库。我正在使用DMax函数来获取表中最高的现有主键。然后我将其递增以获取要添加的新用户的主键。在MS Access中打开数据库时,代码可以正常工作。但是,它返回错误" Sub或未定义的函数。"每当MS Access未打开时。 以下是出现错误时突出显示的代码:

userID = DMax("[UserID]", "subscriber_user") + 1

userID是我的变量,UserID是包含主键的列,subscriber_user是数据库中表的名称。

是否有必要使用MS Access打开数据库才能使其正常工作?是否有另一种方法可以确保数据库得到更新而无需通过MS Access或任何其他IDE打开它?

1 个答案:

答案 0 :(得分:1)

数据库的DMax是Access VBA功能,而不是Excel VBA功能。

您需要通过DAO / ADO连接,或者创建一个这样的Access对象:

Public Sub AccessDmax()

    Dim userID as Integer
    Dim oAccess As Object
    Set oAccess = CreateObject("Access.Application")

    oAccess.Visible = False
    oAccess.OpenCurrentDatabase "C:\test_databases\test.accdb"

    userID = oAccess.DMax("ID", "subscriber_user")

    oAccess.Quit
    Set oAccess = Nothing

End Sub