Alter Table 在 MS Access 64 位下不起作用。为什么?

发布于 2024-12-04 14:04:26 字数 810 浏览 0 评论 0原文

我正在尝试编写一个简单的函数来调整 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

I am trying to write a simple function to resize a text field in MS Access 64 bit version under Windows 7. It fails with the error 3420, object invalid or no longer set. Why is this? Can't you alter a table in code anymore under MS Access 64bit version?

Here is the code:

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

笑饮青盏花 2024-12-11 14:04:26

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

摘录如下:

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

四月份发布了一个修补程序来解决这个问题。 Access 2010 Runtime Service Pack 1 于 2011 年 8 月发布,并且根据发行说明,包含此问题的修复。

访问 - 当您尝试执行以下操作时,会发生“对象无效或不再设置”错误
使用 ALTER TABLE 查询更改字段类型或大小。

It's a known bug in that version of Access. See MS Knowledge Base Article 2516493.

Excerpted here:

Issue that this hotfix package fixes
Assume that you try to change the
structure of a table by using a Data Definition Language (DDL) query
and the ALTER TABLE statement in the 64-bit version of Microsoft
Access 2010. The ALTER TABLE statement includes an ALTER COLUMN
parameter. In this situation, you receive the following error message:
Object invalid or no longer set. When you try to execute the DDL query
through VBA code, you receive the following error message: Run-time
error '3420': Object invalid or no longer set.

There is a hotfix that came out in April to remedy the issue. Access 2010 Runtime Service Pack 1 came out in August 2011, and according to the release notes includes a fix for this issue.

Access - "Object invalid or no longer set" error occurs when you try to
use an ALTER TABLE query to change a field type or size.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文