我正試圖編寫一個簡單的函數來調整Windows 7下MS Access 64位版本中的文本字段的大小。它失敗,錯誤3420,對象無效或不再設置。爲什麼是這樣?你不能在MS Access 64位版本中更改代碼表嗎?Alter Table在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意味着返回的數據庫對象存在於這一行上;這裏不應該有關,但我會仍然這樣做)。此外,你不應該沒有'dbFailOnError'開關和錯誤處理程序的所有CurrentDB.Execute。 –