从另一个查询或字段更改表自动递增起始编号条件



我有一个数据库,存储我们所有的分销合作伙伴销售。每周我都会收到最新的销售信息,并将其加载到我所称的tblImport中。然后,我运行了一些查询,将新的销售行解析为tblUpdate和tblNewAccounts。我正在努力实现我所说的NewAccounts表中的Bill To ID(BT_ID(字段的自动化。我知道如何从主客户表中找到最高BT_ID。我想不出的是如何让tblNewAccounts开始用主客户表中的最大BT_ID+1对BT_ID字段进行自动编号。

我计算出了Alter表,这是我在SQL查询中使用的代码,它有效,但我需要128071的值实际上是1加上主客户表中的MAX BT_ID。

ALTER TABLE [tblUpdate2_NewAcct]
ALTER COLUMN [BT_ID] AUTOINCREMENT(128071,1)

这是我试过的其他东西,但我总是出错。

SELECT Max(tblALX_BillTo.BT_ID) AS MaxOfBT_ID
FROM tblALX_BillTo;
ALTER TABLE [tblUpdate2_NewAcct] ALTER COLUMN [BT_ID] AUTOINCREMENT([MaxOfBT_ID],1);

我也尝试过在VBA中执行此操作,但也没有成功。我认为这一切都与AutoIncrement开始的条件字段有关。

使用相当简单的VBA代码,可以使用DMax获取当前最大BT_ID值加1。然后将该值写入ALTER TABLE语句,并执行它

Dim strDDL As String
Dim lngNewSeed as Long
lngNewSeed = DMax("BT_ID", "tblALX_BillTo") + 1
strDDL = "ALTER TABLE tblUpdate2_NewAcct" & vbCrLF & _
"ALTER COLUMN BT_ID AUTOINCREMENT(" & lngNewSeed & ", 1)"
CurrentProject.Connection.Execute strDDL

最新更新