【问题标题】:MS Access throwing error because of parentheses由于括号,MS Access 抛出错误
【发布时间】:2018-11-26 18:00:43
【问题描述】:

当文本中有括号时,我有一些导航按钮不起作用。文本来自组合框,我从中获取一个值并执行 findfirst 。在我用括号击中值之前,这很好用。例如 3D-1(A)-461 会抛出 2423 错误。

本来我打算使用recordset.movenext,但我有三个子表单必须重新查询,我认为这是最好的方法。

感谢您的帮助。

  If TCTOfilt.ListIndex <> TCTOfilt.ListIndex - 1 Then
    TCTOfilt.ListIndex = TCTOfilt.ListIndex + 1

    Forms!frmMasterDashboard.Requery
    Forms!frmMasterDashboard!subFrmApplicNotes.Form.Requery

    Dim rst As Recordset
    Set rst = CurrentDb.OpenRecordset(Name:="ACbyTCTO", Type:=RecordsetTypeEnum.dbOpenDynaset)
    rst.FindFirst Criteria:=BuildCriteria(Field:="[TCTO Number]", FieldType:=dbText, Expression:=Me.TCTOfilt)
    If Not rst.NoMatch Then
        Me!subFrmOEMNOI.Form.Requery
    Else
        Exit Sub
    End If
Else
    TCTOfilt.ListIndex = TCTOfilt.ListCount + 1

    Forms!frmMasterDashboard.Requery
    Forms!frmMasterDashboard!subFrmApplicNotes.Form.Requery
    Set rst = CurrentDb.OpenRecordset(Name:="ACbyTCTO", Type:=RecordsetTypeEnum.dbOpenDynaset)
    rst.FindFirst Criteria:=BuildCriteria(Field:="[TCTO Number]", FieldType:=dbText, Expression:=Me.TCTOfilt)
    If Not rst.NoMatch Then
        Me!subFrmOEMNOI.Form.Requery
    Else
        Exit Sub
    End If
End If

【问题讨论】:

  • 这很奇怪。括号在 Access 字段中没有特定含义。哪一行代码导致了错误?
  • 它没有给我行号,但我相信它是 Expression:=Me.TCTOfilt。当该变量中包含正常文本时,按钮可以找到。但是括号打破了它
  • 什么是BuildCriteria?那个方法是你写的吗?
  • 是的,它用于两个组合框过滤一个和另一个。
  • OH BuildCriteria 是我发送给 rst.FindFirst 的标准。它给出了要查找的字段、字段类型,最后是要搜索的表达式。 rst.FindFirst Criteria:=BuildCriteria(Field:="[TCTO Number]", FieldType:=dbText, Expression:=Me.TCTOfilt)

标签: ms-access


【解决方案1】:

您误用了BuildCriteria。这并不是要清理字段,而是要复制查询构建器的行为,其中括号确实有意义(它们调用函数)。

如果您想清理字符串,您要么必须编写自己的字符串清理函数,要么使用预先存在的函数(例如Gustav's CSql)。

一般来说,我推荐使用参数。但是,这些不适用于.FindFirst。但是,它们可用于 querydef,并且使用 querydef 直接查询您想要的内容通常比打开记录集然后搜索该记录集要快得多。参见here如何在Access中使用参数。

【讨论】:

  • 谢谢,我会调查的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-17
相关资源
最近更新 更多