设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

123下一页
返回列表 发新帖
查看: 10162|回复: 21
打印 上一主题 下一主题

[模块/函数] 【Access小品】通用选择字段导出示例

[复制链接]
跳转到指定楼层
1#
发表于 2013-7-19 16:56:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 todaynew 于 2013-7-19 17:20 编辑

  版友kelly同志问:如何选择字段打印报表?这个问题直接在Access动态创建报表应该可以实现,或许用PrintOut也可实现(不敢肯定PrintOut对隐藏列可以不输出),是否存在其他直接输出报表的方法不得而知。不过我是编好将这类问题导入到Excel中处理,原因在于其灵活性大很多。

  导出一个表或者查询中的部分数据到EXCEL表中,其方法也有很多。无论如何处理,首先必须要构造出一个SQL查询语句。根据窗体的RecordSource属性,我们可以得到From子句的部分。而根据窗体的Filter属性,我们可以得到Where子句的部分。如果是输出所有字段有这两部分就足够了。但是要输出部分字段,就需要想办法得到Select子句的部分了。

Private Function GetSql(ByVal OpA As String, listctrl As ListBox) As String
    '功能:返回SQL字符串
    '参数:OpA -- Me.OpenArgs (写为:me.name & "子窗体控件名称")
    '      listctrl--存放所选字段的ListBox控件
    Dim frm As Form
    Dim A
    Dim ssql As String, tb As String, wh As String
    Dim i As Long
    If listctrl.ListCount > 0 Then
        A = Split(OpA, ";")
        Set frm = Forms(A(0)).Controls(A(1)).Form
        
        tb = Replace(frm.RecordSource, ";", "") 'From子句部分
        
        wh = "True "
        If Nz(frm.Filter, "") <> "" Then
            wh = wh & " and " & frm.Filter     'Where子句部分
        End If
        
        ssql = "select "
        For i = 0 To listctrl.ListCount - 1
            ssql = ssql & listctrl.Column(0, i) & ","  '拼接Select子句部分
        Next
        ssql = Left(ssql, Len(ssql) - 1)       'select子句部分
        ssql = ssql & " from (" & tb & ") where " & wh
    Else
        ssql = ""
    End If
    GetSql = ssql
End Function

  本例描述了处理这个问题的一种方法,其中【输出窗体】是相对独立的,可以拷贝到任何系统中使用。

示例文件:

视图:



本帖子中包含更多资源

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

x

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享1 分享淘帖1 订阅订阅
2#
发表于 2013-7-19 17:22:26 | 只看该作者
感谢分享!
回复

使用道具 举报

点击这里给我发消息

3#
发表于 2013-7-19 22:08:47 | 只看该作者
谢谢分享。顶起。

点击这里给我发消息

4#
发表于 2013-7-20 10:25:29 | 只看该作者
谢谢分享,很好!!

点击这里给我发消息

5#
发表于 2013-7-20 16:27:20 | 只看该作者
赞一个
回复

使用道具 举报

6#
发表于 2013-7-21 14:53:36 | 只看该作者
貌似红尘曾经写过一个,多了导出字段排序部分(上移或下移)。
7#
发表于 2013-9-22 19:27:51 | 只看该作者
多谢谢
回复

使用道具 举报

8#
发表于 2013-12-19 21:38:02 | 只看该作者
终于找到组织了。。。
9#
发表于 2013-12-20 10:57:21 | 只看该作者
学习学习
回复

使用道具 举报

10#
发表于 2014-2-14 10:20:16 | 只看该作者
代码很好用很实用。本着共享人的义务,不顶贴不回帖就不是人。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-19 18:50 , Processed in 0.113766 second(s), 37 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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