我在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