设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

[查询] [已解决]如何将选项组按钮的查询条件写入到创建查询中导出EXCEL?

[复制链接]
跳转到指定楼层
1#
发表于 2016-10-14 09:36:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 liuqi67 于 2017-1-3 10:36 编辑




要求:依选项组按钮的查询条件导出对应子窗体上的查询内容到excel。


做了一个选项组按钮查询子窗体,需要按选项按钮执行的查询条件导出对应子窗体上的内容,菜鸟级水平,想了好些办法没搞定,导出的总是全部内容,无法实现按筛选的内容导出。

如下示例为选项组三个按钮的查询语句:
Private Sub Option23_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.产品分类统计_子窗体.Form.RecordSource = "select * from 产品分类统计查询 "
End Sub
Private Sub Option25_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.产品分类统计_子窗体.Form.RecordSource = "select * from 产品分类统计查询 where nz(Round([已提供]/[物料总数]*100,2),0)=100"
End Sub
Private Sub Option27_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Me.产品分类统计_子窗体.Form.RecordSource = "select * from 产品分类统计查询 where nz(Round([已提供]/[物料总数]*100,2),0)<100"
End Sub


如下示例为刘小军老师的导出代码,怎么将上面的变量写入到创建的查询中然后导出EXCEL?望高手指教,感谢!
Private Sub 导出_Click()
On Error GoTo Err_cmd导出_Click
    Dim qdf As DAO.QueryDef 'qdf被定义为一个查询定义对象
    Dim strWhere, strSQL As String
    strWhere = 产品分类统计_子窗体.Form.Filter
    If strWhere = "" Then
'没有条件
        strSQL = "SELECT * FROM [产品分类统计查询]"
    Else
'有条件
        strSQL = "SELECT * FROM [产品分类统计查询] WHERE " & strWhere
    End If
    Set qdf = CurrentDb.QueryDefs("产品分类统计导出")
    qdf.SQL = strSQL
    qdf.Close
    Set qdf = Nothing
    DoCmd.OutputTo acOutputQuery, "产品分类统计导出", "Excel97-Excel2003Workbook(*.xls)", , True
Exit_cmd导出_Click:
  Exit Sub
Err_cmd导出_Click:
  MsgBox Err.Description, , "确定要取消保存吗?"
  Resume Exit_cmd导出_Click
  
End Sub

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
 楼主| 发表于 2016-10-14 09:42:28 | 只看该作者
望roych 老师能给予指点
3#
发表于 2016-10-14 09:51:34 | 只看该作者
本帖最后由 access新新新手 于 2016-10-14 09:56 编辑
liuqi67 发表于 2016-10-14 09:42
望roych 老师能给予指点

先获取窗体有多少条数据,然后一条一条写入excel里面
    Set rst = Me.子窗体.Form.Recordset



4#
发表于 2016-10-14 12:02:49 | 只看该作者
例子呢?
回复

使用道具 举报

5#
发表于 2016-10-14 12:11:50 | 只看该作者
这样子,strWhere 永远=""
6#
发表于 2016-10-14 12:30:24 | 只看该作者
把变量strSQL,strWhere以及相关的语句去掉
直接使用
qdf.SQL =Me.产品分类统计_子窗体.Form.RecordSource
7#
 楼主| 发表于 2016-10-14 12:58:12 | 只看该作者
Henry D. Sy 发表于 2016-10-14 12:30
把变量strSQL,strWhere以及相关的语句去掉
直接使用
qdf.SQL =Me.产品分类统计_子窗体.Form.RecordSource ...

非常感谢Henry D.Sy版主回复,我已上传例子,帮忙改一下例子
8#
发表于 2016-10-14 13:32:39 | 只看该作者
liuqi67 发表于 2016-10-14 12:58
非常感谢Henry D.Sy版主回复,我已上传例子,帮忙改一下例子

1.随便做个查询,况且称之为A
2.按钮代码
  1. Private Sub Command3_Click()
  2.     Dim qdf As DAO.QueryDef
  3.     Set qdf = CurrentDb.QueryDefs("A")
  4.     qdf.SQL = Me.最终查询_子窗体.Form.RecordSource
  5.     DoCmd.OutputTo acOutputQuery, "A", , , True
  6. End Sub
复制代码




本帖子中包含更多资源

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

x
9#
 楼主| 发表于 2016-10-14 13:40:04 | 只看该作者
Henry D. Sy 发表于 2016-10-14 13:32
1.随便做个查询,况且称之为A
2.按钮代码

已OK!非常感谢Henry D. Sy 版主为我解决问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-2 01:32 , Processed in 0.085456 second(s), 33 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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