2

我正在尝试编写一个简单的函数来调整 Windows 7 下 MS Access 64 位版本中的文本字段的大小。它失败并出现错误 3420、对象无效或不再设置。为什么是这样?您不能在 MS Access 64 位版本下再更改代码中的表吗?

这是代码:

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
4

1 回答 1

1

这是该版本的 Access 中的一个已知错误。请参阅 MS 知识库文章 2516493

摘录在这里:

此修补程序包修复的问题
假设您尝试使用数据定义语言 (DDL) 查询和 64 位版本的 Microsoft Access 2010 中的 ALTER TABLE 语句来更改表的结构。ALTER TABLE 语句包括一个 ALTER列参数。在这种情况下,您会收到以下错误消息: 对象无效或不再设置。当您尝试通过 VBA 代码执行 DDL 查询时,您会收到以下错误消息: 运行时错误 '3420': 对象无效或不再设置。

4 月发布了一个修补程序来解决此问题。Access 2010 Runtime Service Pack 1于 2011 年 8 月发布,根据发行说明,其中包含针对此问题的修复程序。

访问 - 当您尝试使用 ALTER TABLE 查询更改字段类型或大小时,会出现“对象无效或不再设置”错误。

于 2011-09-14T15:11:23.377 回答