在 Access 2013 中具有多个条件的 DoCmd.SearchForRecord
Posted
技术标签:
【中文标题】在 Access 2013 中具有多个条件的 DoCmd.SearchForRecord【英文标题】:DoCmd.SearchForRecord with multiple criteria in Access 2013 【发布时间】: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
无关。
【参考方案1】:
Access 需要#
符号才能将其识别为日期。当我将查询更改为此时,它会起作用。
'comboDate AfterUpdate VBA macro
DoCmd.SearchForRecord , "", acFirst, "[Name] = " & "'" & comboName.Value & "'" & _
" and [Date] = " & "#" & Format(comboDate, "yyyy-mm-dd") & "#"
【讨论】:
以上是关于在 Access 2013 中具有多个条件的 DoCmd.SearchForRecord的主要内容,如果未能解决你的问题,请参考以下文章
Access 2007 Update Query 在单列上具有多个条件
Microsoft Access - 具有来自不同表的多个条件的 Dlookup
将具有多个表的 Access 数据库导出到具有多个工作表的 Excel