设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1083|回复: 2
打印 上一主题 下一主题

[查询] [求助]关于日期查询

[复制链接]
跳转到指定楼层
1#
发表于 2005-8-11 19:21:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想做一个查询, 如果一个文本框中的值为空,则显示所有数据,否则显示所有比文本框中日期小的数据

我试了一下,

like iif(isnull([Forms]![XX-Form]![YY_TextBox]),"*",<[Forms]![XX-Form]![YY_TextBox])

可是好像不行

请教各位

谢谢

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-8-11 20:22:00 | 只看该作者
if isnull(forms!xx-form!yy_textBox) then

   sql="SELECT * FROM tb1"

else

   sql="SELECT * FROM tb1 WHERE 日期字段<#"& forms!xx-form!yy_textBox &"#"

[此贴子已经被作者于2005-8-11 12:24:44编辑过]

3#
发表于 2005-8-13 01:46:00 | 只看该作者
写了一个例子。文本框不为空的时候,显示等于文本框日期的数据,否则显示全部数据。

部分代码节选:感觉代码写多了,不够简化。利用一个常用的窗体查询,也是可以解决这个问题的,比这个简单,可以搜索一下旧帖。

-------------------------------------------------------------------------------------

Option Compare Database

Option Explicit

Sub query()

Dim a As String

Dim b As Integer



'捕获inputbox所接受的错误数据类型或者null值 比如输入汉字或者取消输入参数

On Error GoTo date_Err



'强制用户输入四位数年份 避免千年问题 所以采用2000-01-01的用户输入方式

a = InputBox("格式为:2000-01-01", "输入一个日期")

Debug.Print a  '在立即窗口中读取这个变量或者表达式的值

'**************************

'给几个控件赋予变量的值

Forms!窗体1![文本0] = a

b = DCount("[日期]", "表1", "[表1]![日期] = Forms!窗体1![文本0]")

'Me.标签8.Caption = "符合查询条件的记录笔数为:"

Me.标签8.Caption = IIf(Me.标签8.Caption = "记录的总个数:" _

, "符合查询条件的记录笔数为:", "符合查询条件的记录笔数为:")



Me.文本7.Value = b

'**************************

'MsgBox Me.子窗体.Form.CurrentRecord 1

'MsgBox Me.子窗体.Form.Count   6

'计算符合文本框条件的记录的个数

'MsgBox DCount("[日期]", "表1", "[表1]![日期] = Forms!窗体1![文本0]")



'**************************

'将sql选择查询传给一个对象 在这里指  Me.子窗体.Form 的 RecordSource 属性

' Me.子窗体.Form  引用当前窗体上某个子窗体的标准写法

'在这里我定义的where条件是等于文本框 当然也定义>或者< 或者between ... and ... 你可以根据你的情况更改一下。

Me.子窗体.Form.RecordSource = "SELECT 表1.ID, 表1.姓名, 表1.日期 " _

  & "FROM 表1 " _

         & "WHERE (((表1.日期)=[forms]![窗体1]![文本0])); "



'**************************

date_Exit:

    Exit Sub

date_Err:

    MsgBox "1、输入错误的会话参数,无法查询" + vbNewLine + "" _

          + vbNewLine + "2、输入参数为空" + vbNewLine + "" + vbNewLine _

              + "请重新输入", , "wu8313..."

                '捕获错误后

                    Forms!窗体1![文本0] = Null  '将文本0值设为空

                    

                    Me.标签8.Caption = IIf(Me.标签8.Caption = "符合查询条件的记录笔数为:" _

, "记录的总个数:", "记录的总个数:")

                        Me.文本7.Value = c

                        

                        

  '捕获到错误后,仍然把全部数据呈现在用户的面前  也就是要返回表中的全部数据

                     

                        

Me.子窗体.Form.RecordSource = "SELECT 表1.ID, 表1.姓名, 表1.日期 " _

& "FROM 表1; "

                        

                       

                        

    Resume date_Exit

End Sub

-------------------------------------------------------------------------------------

补充一句,类似这样的问题,搜索 宗师刘小军老师 的“常用窗体查询”这个非常经典的教程,仔细看看,肯定受益匪浅的。





[此贴子已经被作者于2005-8-12 18:14:54编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-9-20 22:25 , Processed in 0.100977 second(s), 28 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表