【发布时间】:2021-09-03 08:57:32
【问题描述】:
我有一个存储我们所有分销合作伙伴销售额的数据库。每周我都会收到更新的销售数据,并将其加载到我称之为 tblImport 的文件中。然后,我运行了一些查询,将新的销售行解析为 tblUpdate 和 tblNewAccounts。我正在努力实现的是将 NewAccounts 表中的 Bill To ID(BT_ID) 字段自动化。我知道如何从主客户表中找到最高的 BT_ID。我想不通的是如何让 tblNewAccounts 开始对主客户表中最大 BT_ID +1 的 BT_ID 字段进行自动编号。
我找到了 Alter Table,这是我在 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 开始的标准字段有关。
【问题讨论】:
-
Access 无法在一个构造中处理多个 SQL(除非它是对 SQLServer 等后端的直通查询)。可以尝试 DMax() 域聚合函数代替静态引用。我不明白为什么 tblNewAccounts 中的自动编号依赖于另一个表中的键。
-
是的。当我想为自动编号分配种子值时,它是一个空表。我想先分配它,然后用导入表中的新客户填充表。
-
另外,另一张表中的键是所有客户的主键。不允许重复。它不是自动编号,因为编号始终来自 NewAccounts 表。我这样做的原因是因为我实际上有 4 个不同的销售数据来源。这是我的主要来源,所以它被使用得最多。因此,由于数据的大小,我想尽可能地自动化。