谢谢关注.作者: 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"再执行那段代码才能更新.