Office中国论坛/Access中国论坛

标题: [求助]like值来自于数组,该如何写这样的查询? [打印本页]

作者: g7235723    时间: 2009-9-14 17:30
标题: [求助]like值来自于数组,该如何写这样的查询?
有个数组"打印时间"的值为:2009-09-01,2009-09-04,2009-09-15
想做个查询,把所有打印时间在这个数组内的记录显示出来.
不知在怎么写like语句

谢谢关注.
作者: Henry D. Sy    时间: 2009-9-14 18:06
用 in 不好吗?
作者: g7235723    时间: 2009-9-15 10:52
本帖最后由 g7235723 于 2009-9-15 10:55 编辑

试过了 In ([Forms]![发运清单]![日期2])
[Forms]![发运清单]![日期2]中的实际数据是:#2009-09-10#,#2009-09-15#
但查询出错.
"该表达式输入错误,或太复杂不能估值..."
作者: benaris    时间: 2009-9-15 11:46
没用过,学习一下
作者: Henry D. Sy    时间: 2009-9-15 11:51
把例子传上来
作者: g7235723    时间: 2009-9-15 12:26
因为数据库用到了多值字段, 所以好象没法转到MDB版本先把2007版发上来大家帮忙看看...
作者: Henry D. Sy    时间: 2009-9-15 12:39
07的帮不了您
作者: g7235723    时间: 2009-9-15 13:13
要不看看这个2000版的.日期数组能直接在窗体中写...
谢谢...
作者: Henry D. Sy    时间: 2009-9-15 13:20
日期数组能直接在窗体中写
什么意思??
作者: g7235723    时间: 2009-9-15 13:27
可以直接在窗体TEXT11中写入:#2009-09-10#,#2009-09-15#
用来测试查询中的IN函数
作者: Henry D. Sy    时间: 2009-9-15 13:33
本帖最后由 Henry D. Sy 于 2009-9-15 13:38 编辑

没有测试,你自己试试
把查询名字更改为 Q
Dim Qdf As DAO.QueryDef
    Dim sSQL As String
    Dim sWhere As String
    Dim DateArray() As Date
    Dim i As Integer
    If IsNull(Me.日期2) Then
        Exit Sub
    End If
    DateArray = Split(Me.日期2, ",")
    For i = 0 To UBound(DateArray)
        sWhere = sWhere & "#" & DateArray(i) & "#,"
    Next
    sSQL = "select * from 订单明细 where 打印日期 in (" & sWhere & ")"
    Set Qdf = CurrentDb.QueryDefs("Q")
    Qdf.SQL = sSQL
    Qdf.Close
    Set sqf = Nothing
    DoCmd.OpenQuery "Q"
作者: Henry D. Sy    时间: 2009-9-15 13:37
你是这样输入的吗?#2009-09-10#,#2009-09-15#
作者: g7235723    时间: 2009-9-15 13:52
是的.
我试过了,稍微改了下,您那段程序可行...
知道了另一种查询的方法..
谢谢
作者: g7235723    时间: 2009-9-15 13:53
问题似乎在 IN()函数,括号里面是文本没问题,但如果是变量的话似乎就出错了.
作者: g7235723    时间: 2009-9-15 14:10
这样产生的"Q"该如何更新啊?
我每次要关闭一下"Q"再执行那段代码才能更新.




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3