我有一个 Access 数据库,可以通过宏(转换为 VBA)每小时自动将多个 CSV 统一到一个表 (Aux_Table1) 中。在统一之前,我运行一个查询来清理 Aux_Table1 表,但是 Access 被编码为NOT 重用 KEY ID,所以每次我清理和统一 CSV 时, key ID 都会继续计数。
我知道“重置”ID KEY 编号的唯一方法是在表的设计模式中删除手动创建这个主键,但我想自动运行它(它是一个巨大的一部分批处理)。
如何通过 VBA 将此过程包含在我的 (VBA) 函数中? (参见这个 4Mb GIF 演示)。
我的功能示例:
Function MacroUnify()
DoCmd.SetWarnings False
DoCmd.OpenQuery "00_Borrar_Aux_Tabla1", acViewNormal, acEdit
>>> Here I need to _REMOVE_ PrimaryKey from Aux_Tabla1 <<<
>>> Here I need to _CREATE_ PrimaryKey from Aux_Tabla1 <<<
DoCmd.OpenQuery "10_Crea_Tabla definitva", acViewNormal, acEdit
DoCmd.OutputTo acOutputTable, "zzz_resultado_Combinado", "Excel97-Excel2003Workbook(*.xls)", "D:\access\fullCatalog.xls", False, "", , acExportQualityPrint
End Function
我试过:
CurrentDb.Execute "ALTER TABLE Aux_Tabla1 DROP CONSTRAINT PrimaryIndex"
DoCmd.RunSQL "CREATE INDEX PrimaryIndex ON Aux_Tabla1(ID) WITH PRIMARY"
函数运行没有问题,但是关键索引还在计数,没有reset。
PS:索引名称为PrimaryIndex,字段名称为ID
最佳答案
如果我没理解错的话,您想重置 ID 字段上的自动递增计数器
你可以用这条SQL指令来做
CurrentDb.Execute "ALTER TABLE Aux_Tabla1 ALTER COLUMN ID COUNTER(1,1)"
关于sql - 从 VBA 中的 Access 表中删除和添加 ID 键索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36198534/