【问题标题】:DoCmd.SearchForRecord with multiple criteria in Access 2013在 Access 2013 中具有多个条件的 DoCmd.SearchForRecord
【发布时间】:2016-07-11 17:40:13
【问题描述】:

我有一个从 SQL Server 表中提取数据的表单。该表单有两个未绑定的组合框。用户首先从 comboName 中选择,然后是 comboDate,然后表单将检索与值关联的记录。

'comboDate AfterUpdate VBA macro
DoCmd.SearchForRecord , "", acFirst, "[Name] = " & "'" & comboName.Value & "'" & _
" and [Date] = " & "'" & Format(comboDate, "yyyy-mm-dd") & "'"

如果我单独使用Name = comboName.Value,它将检索该名称的第一条记录,但如果我添加Date 条件,或使用Date 条件而不使用Name,组合框将不再检索记录.它只是停留在当前的。我已经转换了访问日期格式以匹配 SQL Server。还需要做什么?

【问题讨论】:

  • 添加Form.Refresh也无效。
  • 该过滤器是否在常规查询中用作 where 子句?
  • @Brad 它没有,我知道这是由于日期格式,但我尝试的任何其他方法都会导致数据类型不匹配。
  • @Brad 啊!事实证明这只是日期格式。它与DoCmd.SearchForRecord 无关。

标签: ms-access vba ms-access-2013


【解决方案1】:

Access 需要# 符号才能将其识别为日期。当我将查询更改为此时,它会起作用。

'comboDate AfterUpdate VBA macro
DoCmd.SearchForRecord , "", acFirst, "[Name] = " & "'" & comboName.Value & "'" & _
" and [Date] = " & "#" & Format(comboDate, "yyyy-mm-dd") & "#"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多