Office中國(guó)論壇/Access中國(guó)論壇

 找回密碼
 注冊(cè)

QQ登錄

只需一步,快速開始

123下一頁
返回列表 發(fā)新帖
查看: 12507|回復(fù): 21
打印 上一主題 下一主題

[模塊/函數(shù)] 【Access小品】通用選擇字段導(dǎo)出示例

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
1#
發(fā)表于 2013-7-19 16:56:07 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
本帖最后由 todaynew 于 2013-7-19 17:20 編輯

  版友kelly同志問:如何選擇字段打印報(bào)表?這個(gè)問題直接在Access動(dòng)態(tài)創(chuàng)建報(bào)表應(yīng)該可以實(shí)現(xiàn),或許用PrintOut也可實(shí)現(xiàn)(不敢肯定PrintOut對(duì)隱藏列可以不輸出),是否存在其他直接輸出報(bào)表的方法不得而知。不過我是編好將這類問題導(dǎo)入到Excel中處理,原因在于其靈活性大很多。

  導(dǎo)出一個(gè)表或者查詢中的部分?jǐn)?shù)據(jù)到EXCEL表中,其方法也有很多。無論如何處理,首先必須要構(gòu)造出一個(gè)SQL查詢語句。根據(jù)窗體的RecordSource屬性,我們可以得到From子句的部分。而根據(jù)窗體的Filter屬性,我們可以得到Where子句的部分。如果是輸出所有字段有這兩部分就足夠了。但是要輸出部分字段,就需要想辦法得到Select子句的部分了。

Private Function GetSql(ByVal OpA As String, listctrl As ListBox) As String
    '功能:返回SQL字符串
    '參數(shù):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

  本例描述了處理這個(gè)問題的一種方法,其中【輸出窗體】是相對(duì)獨(dú)立的,可以拷貝到任何系統(tǒng)中使用。

示例文件:

視圖:



本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號(hào)?注冊(cè)

x

本帖被以下淘專輯推薦:

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享1 分享淘帖1 訂閱訂閱
2#
發(fā)表于 2013-7-19 17:22:26 | 只看該作者
感謝分享!
回復(fù)

使用道具 舉報(bào)

點(diǎn)擊這里給我發(fā)消息

3#
發(fā)表于 2013-7-19 22:08:47 | 只看該作者
謝謝分享。頂起。

點(diǎn)擊這里給我發(fā)消息

4#
發(fā)表于 2013-7-20 10:25:29 | 只看該作者
謝謝分享,很好!

點(diǎn)擊這里給我發(fā)消息

5#
發(fā)表于 2013-7-20 16:27:20 | 只看該作者
贊一個(gè)
回復(fù)

使用道具 舉報(bào)

6#
發(fā)表于 2013-7-21 14:53:36 | 只看該作者
貌似紅塵曾經(jīng)寫過一個(gè),多了導(dǎo)出字段排序部分(上移或下移)。
7#
發(fā)表于 2013-9-22 19:27:51 | 只看該作者
多謝謝
回復(fù)

使用道具 舉報(bào)

8#
發(fā)表于 2013-12-19 21:38:02 | 只看該作者
終于找到組織了。。。
9#
發(fā)表于 2013-12-20 10:57:21 | 只看該作者
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

10#
發(fā)表于 2014-2-14 10:20:16 | 只看該作者
代碼很好用很實(shí)用。本著共享人的義務(wù),不頂貼不回帖就不是人。
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則

QQ|站長(zhǎng)郵箱|小黑屋|手機(jī)版|Office中國(guó)/Access中國(guó) ( 粵ICP備10043721號(hào)-1 )  

GMT+8, 2025-7-13 08:43 , Processed in 0.132913 second(s), 37 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復(fù) 返回頂部 返回列表