当我运行以下VBA时,它会完成我需要的工作。
DoCmd.RunSQL "DELETE * FROM tmp_tbl_order_short"
然后我重新填充表格,但是当我对该数据运行查询时,它很慢。原因是指数消失了。
我可以通过VBA重新创建索引,还是有其他方法可以清除表而不删除索引?
答案 0 :(得分:2)
你的意思是什么?索引已经消失了?如果字段已编入索引,那么当您添加新数据时,它将重新编制索引。您没有删除表并重新创建它,如果需要,您可以使用以下可以执行的SQL语句执行此操作:
DROP TABLE tempTable;
CREATE TABLE tempTable(all fields)
然后创建索引:
CREATE INDEX myTempIndex
ON tempTable (FieldToIndex)
在我看来,还有别的东西让你的查询变得更慢,也许错误的字段索引等等。
答案 1 :(得分:1)
好的......我的坏。在此过程的开发过程中,重新填充表格的查询是一个“生成表格”。查询哪个很好,直到我意识到需要索引。最初的VBA序列清除了表格,然后我认为附加了新数据。
所以' DoCmd.RunSQL" DELETE * FROM tmp_tbl_order_short"'没有删除索引,make表查询是。