sql - 从 VBA 中的 Access 表中删除和添加 ID 键索引

标签 sql ms-access vba

我有一个 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/

相关文章:

java - 我如何在java中的登录数据库中查找重复值(用户名,密码)?

ms-access - 根据组合框选择过滤列表框

ms-access - MS Access 的新管理员,如何修改现有宏

vba - 让我开始编程和调试 Microsoft Office 自动化

excel - VBA 自函数返回#VALUE!单元格出错,而在函数窗口中正确返回实际值

mysql - 检索 User_ID 在 12 月而非 1 月进行交易的记录

MySQL 15 分钟内的第一行

sql - SQL Server T SQL 脚本如何判断它具有哪些安全权限?

sql - 为 Outlook 2007 构建表单

excel - FullSeriesCollection 在 Excel 2010 中生成 "Compile Error: Method or Data Member not found"