如何绕过MS Access列号限制:定义的字段太多

问题描述 投票:0回答:1

我继承了一个设计非常糟糕的MS Access数据库。我正在重新设计,但与此同时我需要为当前版本提供增强功能。由于不同的数据类型问题,我不得不创建许多alter table查询来强制字段进入正确的数据类型。长话短说,我在运行alter table / alter列查询时不时遇到“Too Many Fields Defined”错误消息。我已经阅读了它,发现无论何时运行alter column query,内部MS Access Column计数都会增加。我可以通过点击Compact和Repair按钮来解决这个问题。但是,当我的最终用户运行该程序时,我不希望他们必须这样做。有没有办法以编程方式压缩和修复(检查紧凑关闭选项似乎不起作用)与VBA?或者我可以用VBA以某种方式重置内部表列数?

vba ms-access access-vba
1个回答
0
投票

您只能压缩已关闭的数据库 - 这意味着您的代码必须在单独的数据库中运行 - 因此您必须拆分前端,运行后端数据库的紧凑例程,然后以编程方式附加表。压缩必须在DAO中完成,因此您需要参考

Sub CompactDatabaseRoutine()
Dim dbe As DBEngine
Dim source As String
Dim dest As String

Set dbe = DBEngine
source = "C:\Documents and Settings\user\My Documents\Sales2010.mdb"
dest = "C:\Documents and Settings\user\tempSales2010.mdb"

dbe.CompactDatabase source, dest
If Dir(dest) <> "" Then
Kill source
Name dest As source
End If


End Sub
© www.soinside.com 2019 - 2024. All rights reserved.