【问题标题】:Setting Auto Increment Start Value as a Variable in Access在 Access 中将自动增量起始值设置为变量
【发布时间】:2016-05-10 10:35:57
【问题描述】:

我在网上四处寻找,但找不到任何明确的答案。是否可以在 MS Access VBA 中将 Auto Increment 字段的起始值设置为变量(示例如下)?

Private Sub Command10_Click()
Dim dbs As Database
Set dbs = CurrentDb
Dim tblTempMinID As String

tblTempMinID = "DMax(EntryID, tblCalendar) + 1"
dbs.Execute "ALTER TABLE tblTemp ALTER COLUMN EntryID AUTOINCREMENT(tblTempMinID)"

End Sub

我目前在使用上述代码的字段定义中遇到错误。还在做研究,但我认为把它放在这里不会有什么坏处。

【问题讨论】:

    标签: variables ms-access vba auto-increment


    【解决方案1】:

    假设你想加 1:

    dbs.Execute "ALTER TABLE tblTemp ALTER COLUMN EntryID AUTOINCREMENT(" & tblTempMinID & ",1)"
    

    【讨论】:

    • Slubee,即使更新了您的建议,我仍然遇到同样的错误。我非常希望解决方案就这么简单......
    • tblTempMinID = DMax("EntryID", "tblCalendar") + 1. 为什么引号中有 dmax?
    • 谢谢!这(主要)解决了这个问题。我在引号中加上 dmax 的原因是我仍在学习编写代码的正确方法。我还是比较新的。为了让您的更正生效,我已确保 tblCalendar 中已经有一个条目 - 否则我会收到错误 94 Invalid Use of Null。我按照您的建议从 dmax 中删除了引号,并将它们放在表名和字段名周围,否则没有任何问题。
    • tblCalendar 为空时,您可以使用 Nz() 来避免 "invalid use of Null"tblTempMinID = Nz(DMax("EntryID", "tblCalendar"), 0) + 1 同时考虑 Dim tblTempMinID As Long (而不是字符串)
    猜你喜欢
    • 2012-05-16
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2012-11-30
    • 2017-09-16
    • 2015-10-30
    相关资源
    最近更新 更多