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 が含まれています。 COLUMN パラメータ。この状況では、次のエラー メッセージが表示されます: オブジェクトが無効であるか、設定されていません。VBA コードを使用して DDL クエリを実行しようとすると、次のエラー メッセージが表示されます。 実行時エラー '3420': オブジェクトが無効であるか、設定されていません。

この問題を解決するために 4 月にリリースされたホットフィックスがあります。Access 2010 Runtime Service Pack 1は 2011 年 8 月にリリースされました。リリース ノートによると、この問題の修正が含まれています。

Access - ALTER TABLE クエリを使用してフィールド タイプまたはサイズを変更しようとすると、「オブジェクトが無効であるか、設定されていません」というエラーが発生します。

于 2011-09-14T15:11:23.377 に答える