更改表添加列 - 记录太大的错误VBA SQL

时间:2016-01-08 14:10:38

标签: sql vba ms-access access-vba

我正在尝试向现有的Access 2007数据库添加一个列,并将其命名为预定单元格中的值(在本例中为“B3”)。

Sub InsertField()

Dim nfield As String, ntable As String, wsr As Worksheet, objAccess As   Object

Set wsr = Sheets("Sheet1")

wsr.Select
ntable = "MyTable"
nfield = wsr.Range("B3").Value

Set objAccess = New Access.Application
   ' open access database
  Call objAccess.OpenCurrentDatabase( _
  "C:\Users\user\Desktop\MyDatabase.accdb")
  ' add field
  objAccess.CurrentProject.Connection.Execute ("ALTER TABLE " + ntable + " ADD COLUMN " + nfield + " CHAR")

End Sub

此代码适用于空的测试Access数据库,但是当我在生产数据库(~330MB)上运行它时,我在“ALTER TABLE”行上出现以下错误:

Run-time Error '-2147467259 (80004005)': Record is too large.

数据库之间的引用相同。

这段代码在生产数据库上工作了一段时间,所以我觉得我达到了一定的限度,但我找不到我达到或超过的规格限制。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

您知道是否为表启用了UnicodeCompression吗?使用该属性,表上每行限制为4000个字节。添加CHAR列可能会扩展现有行超过该限制,而在任何空数据库中,任何行都不会超过该限制。