我正在尝试向现有的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.
数据库之间的引用相同。
这段代码在生产数据库上工作了一段时间,所以我觉得我达到了一定的限度,但我找不到我达到或超过的规格限制。
提前感谢您的帮助!
答案 0 :(得分:1)
您知道是否为表启用了UnicodeCompression吗?使用该属性,表上每行限制为4000个字节。添加CHAR
列可能会扩展现有行超过该限制,而在任何空数据库中,任何行都不会超过该限制。