Access2016學習15

關鍵詞:動態報表切換

7.4 動態報表切換面板的製作

        繼續上一節的操作,切換到報表窗格,參照7.1節靜態報表的製作,再利用嚮導建立一個新報表,執行到圖7-4時,字段選“ygxm”和“bxje”,除了所選的兩個字段與之前不一樣外,其他的全部一樣,完成之後,修改報表的頁眉,並將報表名稱命名爲: rptBxmxYg ,完成之後,如下圖所示


7-28按員工統計報表  

關閉報表,這樣就有了兩個報表,分別爲rptBxmx(即按報銷類別統計)rptBxmxYg(按員工姓名統計),如下圖7-29所示:


7-29兩個報表  

下面,我們就來設計一個切換窗體,該窗體的作用是在預覽報表之前,操作者可以選擇“按報銷類別統計”或是“按員工統計”,以打開相應的報表。

新建一個窗體,如下圖7-30所示:


7-30設計切換窗體(1) 

選中圖7-30中的“設計視圖”,單擊【確定】按鈕,出現畫面如下圖7-31所示:


7-31設計切換窗體(2) 

單擊圖7-31中工具欄上的“保存”圖標(左上角紅框處)或是在菜單欄上選擇文件(F)à保存(S)來保存這個新窗體,將其名稱定義爲 frmRptSelect,保存後,如下圖7-32所示:


7-32設計切換窗體(3)

  

雙擊圖7-32處左上角紅框處的小黑方塊,進入窗體屬性(若未顯示窗體屬性則再次雙擊一次),進行該窗體以下屬性設置:

     格式選項卡:

標題:無默認值,輸入以下字符:請選擇您所要瀏覽的報表;

滾動條:默認值爲兩者都有,修改爲:兩者均無;

記錄選擇器:默認爲是,修改爲:否;

導航按鈕:默認爲是,修改爲:否;

分隔線:默認爲是,修改爲:否;

自動調整:默認爲是,修改爲:否;

自動居中:默認是否,修改爲:是;

邊框樣式:默認爲可調邊框,修改爲:對話框邊框;

控制框:默認爲是,修改爲:否;

最大化最小化按鈕:默認爲兩者都有,修改爲:無。

如下圖7-33所示:


7-33設計切換窗體(4)

    其他選項卡:

彈出方式:默認爲否,修改爲:是。

保存窗體的設計,關閉屬性窗口,然後單擊工具箱上的選項組按鈕,如下圖7-34所示:


7-34設計切換窗體(5) 

之後在窗體上選擇適當位置放置,如下圖7-35所示:


7-35設計切換窗體(6) 

刪除該選項組的標籤,之後再單擊工具箱中的“選項按鈕“,即單選按鈕,放置兩個於選項組區域內,如下圖7-36所示:


7-36設計切換窗體(7) 

由於單選按鈕默認帶了一個標籤控件,我們就先修改其攜帶的兩個標籤,將第一個名爲 Option2標籤修改爲:按報銷類別統計報表瀏覽,將第二個名爲 Option4標籤修改爲:按員工姓名統計報表瀏覽,並調整各個控件在窗體上的佈局,如下圖7-37所示:


7-37設計切換窗體(8) 

單擊圖7-37工具箱紅框處的命令按鈕,在選項組控件下面放置兩個命令按鈕,將第一個命令按鈕命名爲確定,將第二個命令按鈕命名爲取消,如下圖7-38所示:


7-38設計切換窗體(9) 

基本佈局已經基本完成,現在進行屬性修改:

第一:打開選項組的屬性,選擇“其他”選項卡,如下圖7-39所示:


7-39設計切換窗體(10) 

將圖7-39中“其他”選項卡中的“名稱”項中默認的 Frame0名稱修改爲 sRpt ,如下圖7-40所示:


7-40設計切換窗體(11) 

在“數據”選項卡中的“默認值”項中輸入:1(即默認爲按報銷類別統計),如下圖7-41所示:


7-41設計切換窗體(12) 

第二:打開單選按鈕按報銷分類統計報表瀏覽的屬性,選擇“數據”選項卡,將選項值設置爲1,如下圖7-42所示:


7-42設計切換窗體(13) 

同理,將“按員工姓名統計報表瀏覽”單選按鈕的該選項值修改爲2

第三:打開命令按鈕【取消】的屬性,選擇“其他”選項卡,將名稱屬性修改爲: cmdClose,如下圖7-43所示:


7-43 設計切換窗體(14)

之後切換到“事件”選項卡,在“單擊”項選擇:[事件過程],如下圖

7-44所示

7-44設計切換窗體(15) 

單擊“單擊”事件右邊的“…”按鈕,進入單擊事件的代碼編輯頁面,如下圖7-45所示:


7-45設計切換窗體(16) 

在代碼光標處輸入以下代碼: DoCmd.Close,如下圖7-46所示:


 7-46設計切換窗體(17) 

輸入之後保存,並關閉代碼輸入頁面,關閉【取消】的控件屬性窗口。

打開【確定】按鈕的屬性,將“其它”選項卡的名稱修改爲cmdOK ,如下圖所示:

7-47 設計切換窗體(18)  

之後切換到“事件”選項卡,在“單擊”項選擇:[事件過程],單擊“單擊”事件右邊的“…”按鈕,進入單擊事件的代碼編輯頁面,如下圖7-48所示:

7-48 設計切換窗體(19)

在cmdOK單擊事件中輸入以下代碼:  

Select Case Me.sRpt
    Case 1
        '預覽報表 - 按報銷類別
        DoCmd.OpenReport "rptBxmx", acViewPreview, , g_strWhere
    Case 2
        '預覽報表 - 按員工姓名
        DoCmd.OpenReport "rptBxmxYg", acViewPreview, , g_strWhere
    End Select
DoCmd.Close acForm, "frmRptSelect"

     代碼輸入後如下圖7-49所示:

7-49 設計切換窗體(20)  

保存輸入,之後關閉代碼輸入界面,並關閉屬性對話框,之後按之前所學的方法,調整窗體運行時的實際顯示大小,如下圖7-50所示:

7-50 設計切換窗體(21)  

注意:圖7-50看似調整好了,運行時未必一定如此大小,所以需要在調整好外觀尺寸後,移動一下某個控件,再保存一下窗體,就會調整成功。

從圖7-49可以看出,在代碼的最右邊有一個g_strWhere變量條件,這個變量條件是用來根據操作員查詢條件顯示相應的統計結果,那麼該變量條件值從哪裏來呢?請接着往下進行學習。

首先雙擊模塊Module1,在該模塊聲明一個全局變量g_strWhere,代碼如下:

Public g_strWhere As String

聲明後代碼區如下圖7-51所示:

7-51 設計切換窗體(22)  

再進入frmBxmx的窗體模塊,修改btnPrintPreview事件和btnPrint事件的VBA代碼如下:

Public Sub btnPrintPreview_Click()
    On Error GoTo ErrorHandler
'    If ObjectExists(acReport, "rptBxmx") = True Then
'    DoCmd.OpenReport "rptBxmx", acViewPreview, , mclsQuery.WhereSQL
'    End If
    g_strWhere = mclsQuery.WhereSQL
    DoCmd.OpenForm "frmRptSelect"
ExitHere:
    Exit Sub
    
ErrorHandler:
    Select Case Err.Number
    Case errOpenActionWasCanceled, errOperationCanceledByUser
    Case Else
        MsgBoxEx Err.Description, vbCritical
    End Select
    Resume ExitHere
End Sub

Public Sub btnPrint_Click()
    On Error GoTo ErrorHandler

    '    DoCmd.OpenReport "rptBxmx", , mclsQuery.WhereSQL
    g_strWhere = mclsQuery.WhereSQL
    DoCmd.OpenForm "frmRptSelect"
ExitHere:
    Exit Sub

ErrorHandler:
    Select Case Err.Number
    Case errOpenActionWasCanceled, errOperationCanceledByUser
    Case Else
        MsgBoxEx Err.Description, vbCritical
    End Select
    Resume ExitHere
End Sub
 代碼修改後如下圖7-52所示:

7-52 設計切換窗體(23) 

執行保存,然後關閉VBA代碼界面和所有窗體。

    運行SysFrmLogin窗體登錄系統,雙擊導航菜單中的“報銷明細”,如下圖7-53所示:

7-53 設計切換窗體(24)  

單擊圖7-53中的“打印預覽”按鈕,就可以看到不同報表的切換效果了,這裏不作詳述。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章