我在Microsoft Access 2007中有一個列表表單,並且我試圖製作一個按鈕,它將搜索給定短語的某個字段。問題是我試圖搜索的字段是一個備忘錄字段,我通常希望保持記錄排序(通過計數字段)。這會將我的備註字段截斷爲255個字符,並使字段的其餘部分不可搜索。因此,在搜索表單的Form_Open事件期間,我一直關閉正在搜索的表單的「OrderByOn」屬性(或將「OrderBy」設置爲「」),這似乎正確地解除了我的數據並使備忘錄字段完全可見。但是,當我嘗試搜索時,有時會遇到ErrorNext錯誤「Microsoft Visual Basic運行時錯誤'1006':Unknown」。如果在當前記錄和記錄集結束之間的記錄的前255個字符中找不到搜索項,我想我會收到錯誤。這是搜索表單的代碼:運行時錯誤'1006':未知
Private Sub Form_Open(Cancel As Integer)
[Forms]![MyForm]![MySubform].[Form].OrderBy = ""
'[Forms]![MyForm]![MySubform].[Form].OrderByOn = False
End Sub
Private Sub Search_Click()
Dim vDescription As String
Dim r As Recordset
vDescription = ""
If Me![Description] <> "" Then vDescription = "[MyFieldName] LIKE('*' + '" & Me![Description] & "' + '*')"
If Not (vDescription = "") Then
Set r = [Forms]![MyForm]![MySubform].[Form].Recordset
> r.FindNext (vDescription)
If r.NoMatch Then
r.MoveFirst
r.FindNext (vDescription)
If r.NoMatch Then
MsgBox ("No match found.")
r.MoveFirst
End If
End If
End If
End Sub
我找不到任何此錯誤消息的搜索結果,這看起來很奇怪。爲什麼我得到一個錯誤?我是否正確使用記錄集?我應該以不同的方式處理OrderBy/OrderByOn嗎?
什麼特別,我應該在vDescription尋找?現在它是'[MyFieldName] LIKE('*'+'StuffITypedIn'+'*')'。是的,當我不需要它們時,括號是我的一個壞習慣。我擺脫了他們,同樣的錯誤。 – serme