【发布时间】:2015-07-29 10:51:56
【问题描述】:
我正在用 VBA 编写代码,允许使用 MS Excel 中的用户表单将新用户添加到数据库中。提交表单后,数据库必须自动更新。我正在使用DMax 函数来获取表中现有的最高主键。然后我将其递增以获取要添加的新用户的主键。当数据库在 MS Access 中打开时,代码可以完美运行。但是,它返回错误“未定义子或函数”。每当 MS Access 未打开时。
以下是出现错误时突出显示的代码:
userID = DMax("[UserID]", "subscriber_user") + 1
userID是我的变量,UserID是包含主键的列,subscriber_user是数据库中的表名。
是否需要使用 MS Access 打开数据库才能正常工作?是否有另一种方法可以确保数据库得到更新,而无需通过 MS Access 或任何其他 IDE 打开它?
【问题讨论】:
-
您应该使用 DAO/ADO 来更新数据,在这种情况下,您可以使用 SELECT 查询获取 ID。不过不太清楚为什么需要PK。
-
@Rory 我正在使用 SQL 查询更新数据,它工作得很好。我唯一的问题是 DMax 功能。我对这一切都很陌生,我不确定自动增量应该如何在这里工作,所以我得到了最新记录的 PK,所以我可以使用代码增加它,然后将它传递到我插入新记录的查询中桌子。
-
你的PK不是自动编号吗?如果是,则添加数据时不需要包含它。
-
@Rory 我不是创建数据库的人,所以我不太确定,但我正在调查它。谢谢!
标签: database vba excel ms-access