设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

1234下一页
返回列表 发新帖
查看: 9197|回复: 32
打印 上一主题 下一主题

[窗体] 如何把空值查询的结果传到报表中打印。同时不影响原打印功能。

[复制链接]
跳转到指定楼层
1#
发表于 2017-3-23 13:17:06 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
如何把空值查询的结果传到报表中打印。同时不影响原打印功能。
就是说一个报表即能打印查询结果,也能就打印空值查询结果。只依据所显示的查询结果打印。

Private Sub cmd查询_Click()
    On Error GoTo Err_cmd查询_Click
    Dim strWhere As String  '定义条件字符串
    strWhere = ""    '设定初始值-空字符串

    '判断【产品名称】条件是否有输入的值
    If Not IsNull(Me.产品名称) Then
        '有输入
        strWhere = strWhere & "([产品名称] like '*" & Me.产品名称 & "*') AND "
    End If
   
     '判断【订单编号】条件是否有输入的值
    If Not IsNull(Me.订单编号) Then
        '有输入
        strWhere = strWhere & "([订单编号] like '*" & Me.订单编号 & "*') AND "
    End If
   
   '判断【准时】条件是否有输入的值
    If Not IsNull(Me.准时) Then
        '有输入
        strWhere = strWhere & "([准时] like '" & Me.准时 & "') AND "
    End If
   
     '判断【交货日期】条件是否有输入的值,由于有【启始交货日期】【截止交货日期】两个文本框
    '所以要分开来考虑
    If Not IsNull(Me.启始交货日期) Then
        '【启动交货日期】有输入
        strWhere = strWhere & "([交货日期] >= #" & Format(Me.启始交货日期, "yyyy-mm-dd") & "#) AND "
    End If
    If Not IsNull(Me.截止交货日期) Then
        '【截止交货日期】有输入
        strWhere = strWhere & "([交货日期] <= #" & Format(Me.截止交货日期, "yyyy-mm-dd") & "#) AND "
    End If
    '如果输入了条件,那么strWhere的最后肯定有" AND ",这是我们不需要的,
    '要用LEFT函数截掉这5个字符。
    If Len(strWhere) > 0 Then
        '有输入条件
        strWhere = Left(strWhere, Len(strWhere) - 5)
    End If
    '先在立即窗口显示一下strWhere的值,代码调试完成后可以取消下一句
    Debug.Print strWhere
    '让子窗体应用窗体查询
    Me.订单查询详表.Form.Filter = strWhere
    Me.订单查询详表.Form.FilterOn = True
   
     If Len(strWhere) > 0 Then
     Dim str As String, str1 As String
     str = "准时='超期' AND " & strWhere
    str1 = "准时='按时' AND " & strWhere
      Me.订单查询详表!超期次数 = DCount("*", "订单查询", str)
      Me.订单查询详表!按时次数 = DCount("*", "订单查询", str1)
    End If
Exit_cmd查询_Click:
    Exit Sub
Err_cmd查询_Click:
    MsgBox Err.Description
    Resume Exit_cmd查询_Click
End Sub
Private Sub cmd清除_Click()
   
    '下面这些控件的值要清空

    Me.产品名称 = Null
    Me.订单编号 = Null
    Me.准时 = Null
    Me.启始交货日期 = Null
    Me.截止交货日期 = Null
    Me.订单查询详表.Form.Filter = ""
    Me.订单查询详表.Form.FilterOn = True
    Me.订单查询详表!超期次数 = DCount("*", "订单查询", "准时='超期'")
    Me.订单查询详表!按时次数 = DCount("*", "订单查询", "准时='按时'")
   
    Me.空值字段 = Null
    Me.订单查询详表.Form.RecordSource = "select * from 订单查询"
   
    Me.订单查询详表.Requery  '清空之后一样要重新查询
End Sub

Private Sub 空值查询_Click()
     Dim str As String
     Dim sSQL As String
       If Not IsNull(Me.空值字段) Then
           str = Me.空值字段
         Else
           MsgBox "请输入要查询的空值字段名称"
           Me.空值字段.SetFocus
         Exit Sub
       End If
          sSQL = "select * from 订单查询 where " & str & " is null"
          Me.订单查询详表.Form.RecordSource = sSQL
  
End Sub

Private Sub 订单查询预览打印_Click()
    On Error GoTo Err_订单查询预览打印_Click
    Dim stDocName, strWhere As String
    stDocName = "订单查询打印"
    strWhere = Me.订单查询详表.Form.Filter
    '在打开报表的同时把子窗体的筛选条件字符串也传递给报表,
    '这样地话报表也会显示和子窗体相同的记录。
    DoCmd.OpenReport stDocName, acPreview, , strWhere
   
   
Exit_订单查询预览打印_Click:
    Exit Sub
Err_订单查询预览打印_Click:
    MsgBox Err.Description
    Resume Exit_订单查询预览打印_Click
End Sub

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
33#
发表于 2021-7-27 11:19:16 | 只看该作者
22222
回复

使用道具 举报

32#
发表于 2021-7-25 20:38:28 | 只看该作者
eeeeeeeeeeeeeeeeee
31#
 楼主| 发表于 2017-3-27 08:12:26 | 只看该作者
现在没发现问题,真是太谢谢Henry D. Sy版主了。
30#
 楼主| 发表于 2017-3-25 20:32:22 | 只看该作者
谢谢,我再试一下。
29#
发表于 2017-3-25 20:18:27 | 只看该作者
yzc2011 发表于 2017-3-25 19:15
这是有问题的附件,能帮忙再看一下吗。一般都是打开后输入空值查询条件后点击空值查询,没有清除,直接关闭 ...


本帖子中包含更多资源

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

x
28#
 楼主| 发表于 2017-3-25 19:15:35 | 只看该作者
本帖最后由 yzc2011 于 2017-3-25 20:32 编辑

这是有问题的附件,能帮忙再看一下吗。一般都是打开后输入空值查询条件后点击空值查询,没有清除,直接关闭窗体。下次打开就会留下空值查询后的数据。不管怎么弄都弄不掉。


本帖子中包含更多资源

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

x
27#
 楼主| 发表于 2017-3-25 18:15:20 | 只看该作者
同一个文件中有两个查询使用了空值查询,原来是两个都会出现这种情况,现在是有一个出现这种情况,另一个又不会???
26#
 楼主| 发表于 2017-3-25 18:15:07 | 只看该作者
同一个文件中有两个查询使用了空值查询,原来是两个都会出现这种情况,现在是有一个出现这种情况,另一个又不会???
25#
 楼主| 发表于 2017-3-25 15:19:19 | 只看该作者
本帖最后由 yzc2011 于 2017-3-25 15:22 编辑

都弄了,记录源都有设置的。  订单查询、订单查询详表、报表、模块。4个地方修改的都处理过了。查询和空值查询点点突然变成这样子。数据被固定了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-12 17:30 , Processed in 0.137592 second(s), 35 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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