【Access小品】通用选择字段导出示例-煮江品茶
Access软件网QQ交流学习群(群号码198465573),欢迎您的加入!
首页 >技术文章> 源码示例


【Access小品】通用选择字段导出示例

发表时间:2013/7/19 16:42:24 评论(7) 浏览(15334)  评论 | 加入收藏 | 复制
   
摘 要:【Access小品】通用选择字段导出示例
正 文:

  版友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


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


示例文件

点击下载此附件示例学习


视   


Access软件网交流QQ群(群号:198465573)
 
 相关文章
【access源码示例】导入导出系列--Excel固定格式的订单导...  【红尘如烟  2010/12/24】
【access源码示例】导入导出系列——Excel固定格式的订单数...  【红尘如烟  2011/1/13】
【access源码示例】导入导出系列--Excel导入时替换表中已...  【红尘如烟  2011/1/14】
【access源码示例】导入导出系列——Excel固定格式导出(插...  【红尘如烟  2011/3/12】
【access源码示例】导入导出系列--Excel固定格式的订单数...  【红尘如烟  2011/4/1】
【access源码示例】导入导出系列——Excel数据高效导入示例  【红尘如烟  2011/5/24】
常见问答
技术分类
相关资源
文章搜索
关于作者

煮江品茶

文章分类

文章存档

友情链接