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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何绕过MS Access列号限制:定义的字段太多相关的知识,希望对你有一定的参考价值。

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

答案

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

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

Set dbe = DBEngine
source = "C:Documents and SettingsuserMy DocumentsSales2010.mdb"
dest = "C:Documents and Settingsuser	empSales2010.mdb"

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


End Sub

以上是关于如何绕过MS Access列号限制:定义的字段太多的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MS Access 中定义复合键?

定义的字段太多 Access DB Oledb

在 MS Access 2003 上出现错误 (3163)

完成某些字段后,使字段在 MS Access 表单中可见

防止用户绕过 MS Access 上的登录表单

谁知道Access数据库行数有没有限制?是多少?