vba - 为什么我在一个表单上而不是另一个表单上收到运行时错误 2185?
问题描述
我对 MS Access 有点陌生,我在编码时有点学习,所以如果我的问题有点奇怪,请原谅我。
我创建了一个基于表格的表格,在表格中我有一个文本框,用户可以输入一些内容,它应该过滤表格并根据用户输入的内容显示结果。有两种形式的代码几乎相同(名为 Rec 和 Cx)。在其中一个(Rec)中,上面的描述工作得很好,但另一个(Cx)没有,我得到一个运行时错误 2185。让我给你看一些代码:
Private Sub strConsRecDesc_KeyUp(KeyCode As Integer, Shift As Integer)
FiltroRec = ""
FilterTextDesc = ""
If Len("" & Me.strConsRecDesc.Text) > 0 Then
intLenDesc = Len(Me.strConsRecDesc.Text)
RequeryForm
strConsRecDesc.SetFocus
Me.FilterOn = True
If intLenDesc > Len(Me.strConsRecDesc.Text) Then
Me.strConsRecDesc = Me.strConsRecDesc & " "
Else
Me.strConsRecDesc = FilterTextDesc
End If
strConsRecDesc.SelStart = intLenDesc
Else
RequeryForm
strConsRecDesc.SetFocus
End If
End Sub
我听说根据数据类型标记变量和字段是一种很好的做法,所以这里int代表整数,str代表字符串,Desc指的是描述字段。
根据在字段strConsRecDesc中键入的内容,我使用其中的RequeryForm过滤表,这基本上检查了用户可以写入的表单中的所有字段。让我向您展示描述字段的部分:
strConsRecDesc.SetFocus
If Len(strConsRecDesc.Value) > 0 Then
FilterTextDesc = Me!strConsRecDesc.Value
If Len(FiltroRec) > 0 Then
FiltroRec = FiltroRec & " And "
End If
FiltroRec = FiltroRec & "[recDescricao] LIKE '*" & FilterTextDesc & "*'"
End If
在这种形式(Rec)中,我可以写,即这是一个测试,没有显示记录,因为没有记录,这是一个写在里面的测试,这是正确的。如果我键入符合条件的内容,它就可以正常工作。但是,在另一种形式(Cx 形式)中,我有以下 KeyUp 代码:
Private Sub strConsCxDesc_KeyUp(KeyCode As Integer, Shift As Integer)
FiltroCx = ""
FilterTextDesc = ""
If Len("" & Me.strConsCxDesc.Text) > 0 Then
intLenDesc = Len(Me.strConsCxDesc.Text)
RequeryForm
strConsCxDesc.SetFocus
Me.FilterOn = True
If intLenDesc > Len(Me.strConsCxDesc.Text) Then
Me.strConsCxDesc = Me.strConsCxDesc & " "
Else
Me.strConsCxDesc = FilterTextDesc
End If
strConsCxDesc.SelStart = intLenDesc
Else
RequeryForm
strConsCxDesc.SetFocus
End If
End Sub
Cx 的等效 RequeryForm 是:
strConsCxDesc.SetFocus
If Len(strConsCxDesc.Value) > 0 Then
FilterTextDesc = Me!strConsCxDesc.Value
If Len(FiltroCx) > 0 Then
FiltroCx = FiltroCx & " And "
End If
FiltroCx = FiltroCx & "[cxDescricao] LIKE '*" & FilterTextDesc & "*'"
End If
但是在 Cx 中,如果我在strConsCxDesc文本框中键入这是一个测试,我会收到运行时错误 2185。
我知道仅使用这一点代码很难掌握我要做什么,但是如果代码相同,我真的不知道为什么会出现此错误。
我感谢任何帮助,我很抱歉我的英语不好,这不是我的母语。
提前致谢。