Office中国论坛/Access中国论坛
标题: [求助]关于日期查询 [打印本页]
作者: Threaten 时间: 2005-8-11 19:21
标题: [求助]关于日期查询
我想做一个查询, 如果一个文本框中的值为空,则显示所有数据,否则显示所有比文本框中日期小的数据
我试了一下,
like iif(isnull([Forms]![XX-Form]![YY_TextBox]),"*",<[Forms]![XX-Form]![YY_TextBox])
可是好像不行
请教各位
谢谢
作者: zyp 时间: 2005-8-11 20:22
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编辑过]
作者: wu8313 时间: 2005-8-13 01:46
写了一个例子。文本框不为空的时候,显示等于文本框日期的数据,否则显示全部数据。
部分代码节选:感觉代码写多了,不够简化。利用一个常用的窗体查询,也是可以解决这个问题的,比这个简单,可以搜索一下旧帖。
-------------------------------------------------------------------------------------
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
-------------------------------------------------------------------------------------
补充一句,类似这样的问题,搜索 宗师刘小军老师 的“常用窗体查询”这个非常经典的教程,仔细看看,肯定受益匪浅的。
[attach]12405[/attach]
[此贴子已经被作者于2005-8-12 18:14:54编辑过]
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |