Windows 7では、MS Access 64ビット版のテキストフィールドのサイズを変更する簡単な関数を作成しようとしています。エラー3420でオブジェクトが無効であるか、設定されなくなりました。どうしてこれなの? MS Access 64bit版のコードでテーブルを変更することはできませんか?ここで変更テーブルは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
エラーが発生した行はありますか。 – JohnFx
CurrentDb.Execute(sSQL)行で失敗します。以下の他のコメントを参照してください。 –
これは実際のバグです(そのための修正プログラムがあるので)、あなたのコードは気になります。 CurrentDBを使用するのではなく、そのデータベースオブジェクトを変数に代入して実行します(永続性を保証しますが、CurrentDBを使用すると返されるデータベースオブジェクトはその1行に存在することを意味します。それでもやります)。また、 'dbFailOnError'スイッチとエラーハンドラなしで、すべてのCurrentDB.Executeを実行するべきではありません。 –