我正在尝试编写一个简单的函数来调整Windows 7下MS Access 64位版本中的文本字段。它失败并显示错误3420,对象无效或不再设置。为什么是这样?你不能在MS Access 64bit版本下改变代码中的表吗?
以下是代码:
Private Function ResizeSingleTextField(sTableName As String, _
sFieldName As String, _
iLength As Integer)
ResizeSingleTextField = False
Dim sSQL As String
sSQL = "ALTER TABLE " & sTableName & " " _
& "ALTER COLUMN " & sFieldName & " " _
& "TEXT (" & iLength & ")"
CurrentDb.Execute (sSQL)
ResizeSingleTextField = True
Exit Function
End Function
Public Sub TestIt()
Dim result As Boolean
result = ResizeSingleTextField("GregTest", "MyTextField", 12)
Debug.Print result
End Sub
答案 0 :(得分:1)
这是该版本的Access中的一个已知错误。请参阅MS知识库Article 2516493。
摘录于此:
此修补程序包修复的问题
假设您尝试更改 使用数据定义语言(DDL)查询的表结构 和64位版本的Microsoft中的ALTER TABLE语句 Access 2010. ALTER TABLE语句包含ALTER COLUMN 参数。在这种情况下,您收到以下错误信息: 对象无效或不再设置。当您尝试执行DDL查询时 通过VBA代码,您收到以下错误消息:运行时 错误'3420':对象无效或不再设置。
4月份有一个hotfix来解决这个问题。 Access 2010 Runtime Service Pack 1于2011年8月发布,根据发行说明包含针对此问题的修复程序。
访问 - 尝试时出现“对象无效或不再设置”错误 使用ALTER TABLE查询来更改字段类型或大小。