Office中国论坛/Access中国论坛

标题: strwhere 筛选语句请教(搞定、谢谢) [打印本页]

作者: 大连海员    时间: 2013-3-24 20:03
标题: strwhere 筛选语句请教(搞定、谢谢)
本帖最后由 大连海员 于 2013-3-26 20:06 编辑

请教各位:

要编写一个筛选语句,内容为:
如果“日期1”和“日期2”都不为空,则筛选出:“日期”>“日期1” 和“日期”<“日期2”的数据,我编写后运行不对,请指教,语句如下:
    If Not IsNull(Me.日期1) And IsNull(Me.日期2) Then
        '有输入
   strWhere = strWhere & "([日期] > '*" & Me.日期1 & "*') AND " & "([日期] < '*" & Me.日期2 & "*') AND "
    End If
作者: netguestcn    时间: 2013-3-24 20:33
If Not IsNull(Me.日期1) Then strWhere = strWhere & " AND 日期>=#" & Me.日期1 & "#"
If Not IsNull(Me.日期2) Then strWhere = strWhere & " AND 日期<=#" & Me.日期2 & "#"
作者: 大连海员    时间: 2013-3-24 21:56
谢谢楼上的回复,但好象还是不对,我的水平不高,能否帮忙修改为与if 和end if 完全一样的格式,因为这个查询中还有别的一些查询语句,必须要一样才行的。

再次感谢
作者: 你是坏蛋    时间: 2013-3-25 07:23
把你原来的语句的*换成#,在把单引号去掉就可以了啊。
当然,IF条件也有错。 If Not IsNull(Me.日期1) And IsNull(Me.日期2) Then 改为If Not IsNull(Me.日期1) And not IsNull(Me.日期2) Then

作者: mclly2000    时间: 2013-3-25 09:11
http://www.office-cn.net/thread-107068-1-1.html 参考
作者: 大连海员    时间: 2013-3-25 20:15
谢谢楼上各位指教,后来改为以下语句后正确了:
If Not IsNull(Me.日期1) And Not IsNull(Me.日期2) Then
strWhere = strWhere & "([日期] > #" & Me.建期1 & "#) AND "
strWhere = strWhere & "([日期] < #" & Me.日期2 & "#) AND "
    End If

但是我对这文本、数字、日期的格式理解还是不太对,因此接下来的一个数字型的,又整不对了(什么*, ' '' 的整不明白了),麻烦再看一下数字的符号如何改的:
If Not IsNull(Me.数字1) And Not IsNull(Me.数字2) Then
strWhere = strWhere & "([数字] > #" & Me.数字1 & "#) AND "
strWhere = strWhere & "([数字] < #" & Me.数字2 & "#) AND "
    End If

再次感谢各位帮助
作者: roych    时间: 2013-3-25 21:07
大连海员 发表于 2013-3-25 20:15
谢谢楼上各位指教,后来改为以下语句后正确了:
If Not IsNull(Me.日期1) And Not IsNull(Me.日期2) Then ...

1、文本加单引号(如果用双引号则注意加上转义符)。
2、日期加井号。
3、数值型什么都不加。
作者: 大连海员    时间: 2013-3-26 20:05
搞定了,多谢各位的指点。




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