MS 访问错误。 3464,过滤器类型不匹配,如何正确设置过滤器?

Posted

技术标签:

【中文标题】MS 访问错误。 3464,过滤器类型不匹配,如何正确设置过滤器?【英文标题】:MS Access Err. 3464, Typemismatch on Filter, How to set a Filter properly? 【发布时间】:2018-10-30 12:30:01 【问题描述】:

我目前正在使用 MS Access 开发数据库。

问题: 我有一个带有 ComboBox (TNIDCombo) 和一个子窗体的主窗体。子表单包含要过滤的表格,组合框包含应该用于过滤子表单的值。

Surfing *** 我了解到,您可以在 ComboBox 的不同状态上绑定宏,例如“afterUpdate”,这就是我尝试过的:

Private Sub TNIDCombo_AfterUpdate()
On Error GoTo Proc_Error
If IsNull(Me.TNIDCombo) Then
   Me.DQ_ListeTNIDs.Form.Filter = ""
   Me.DQ_ListeTNIDs.Form.FilterOn = False
Else
  Me.DQ_ListeTNIDs.Form.Filter = "WMSTI_AUFTRNRAG=" & Me.TNIDCombo
  Me.DQ_ListeTNIDs.Form.FilterOn = True
End If
Proc_Exit:
   Exit Sub
Proc_Error:
   MsgBox "Fehler " & Err.Number & " Beim Setzen des Filters:" & vbCrLf & Err.Description
   Resume Proc_Exit
End Sub

DQ_ListeTNIDs 是子表单的名称,"WMSTI_AUFTRNRAG" 是子表单中应该被过滤的列之一的列标题的名称。

遗憾的是,在 FormView 中使用 ComboBox 时,这会引发错误 3464,类型不匹配 有人可以向我指出该错误的原因吗?

感谢您的任何回答。 -忍者

【问题讨论】:

也许您的 WMSTI_AUFTRNRAG 需要一个字符串?如果是这样,您需要引号:Me.DQ_ListeTNIDs.Form.Filter = "WMSTI_AUFTRNRAG='" & Me.TNIDCombo & "'". 我什至不知道这可能是一件事。 “WMSTI_AUFTRNRAG”包含数值,这就是我没有想到的原因。这解决了我的问题!谢谢 【参考方案1】:

正如@Gustav 所说: Me.DQ_ListeTNIDs.Form.Filter = "WMSTI_AUFTRNRAG='" & Me.TNIDCombo & "'" 成功了。该列只包含数值,但该字段的数据类型是短文本.. TIL.

谢谢古斯塔夫

【讨论】:

以上是关于MS 访问错误。 3464,过滤器类型不匹配,如何正确设置过滤器?的主要内容,如果未能解决你的问题,请参考以下文章

运行时错误 3464:条件表达式中的数据类型不匹配

Ms Access SQL 更新语句不起作用

OpenRecordSet 的数据类型不匹配错误

使用组合框过滤子表单

MS Access 报告给出“数据类型不匹配”错误,但基础查询没有

在vba中使用多个字符串过滤访问报告,获取数据类型不匹配