移除報(bào)表預(yù)覽窗口的Min/Max/Close按鈕

字號(hào):

從報(bào)表的預(yù)覽窗口上移除最小化、化以及復(fù)原按鈕,創(chuàng)建一個(gè)自定義的工具條讓用戶來關(guān)閉報(bào)表以及使用某些API函數(shù)來移除預(yù)覽窗口上的標(biāo)題欄。使用這種方法,一旦化報(bào)表,預(yù)覽窗口將占據(jù)整個(gè)access的屏幕窗口而不出現(xiàn)允許復(fù)原按鈕恢復(fù)原來窗口的大小以及不出現(xiàn)其它按鈕。
    正文:
    從報(bào)表的預(yù)覽窗口上移除最小化、化以及復(fù)原按鈕,創(chuàng)建一個(gè)自定義的工具條讓用戶來關(guān)閉報(bào)表以及使用某些API函數(shù)來移除預(yù)覽窗口上的標(biāo)題欄。使用這種方法,一旦化報(bào)表,預(yù)覽窗口將占據(jù)整個(gè)access的屏幕窗口而不出現(xiàn)允許復(fù)原按鈕恢復(fù)原來窗口的大小以及不出現(xiàn)其它按鈕。
    涉及的使用步驟如下:
    1.在每個(gè)報(bào)表的Deactivate事件處理程序中寫入:
    DoCmd.CloseacReport,Me.Name
    2.在一個(gè)總是打開的主菜單中放置一個(gè)的退出數(shù)據(jù)庫的按鈕,并在引用報(bào)表的窗口(frmStart)中定義:
    DimCanCloseasInteger
    在窗體的Open事件處理程序中寫入:
    CanClose=0
    在窗體的Unload事件處理程序中寫入:
    IfNotCanCloseThen
    Cancel=True
    Forms!frmStart.Visible=True
    'formishiddenwhenreportispreviewed
    DoCmd.SelectObjectacForm,"frmStart"
    CloseForms
    CloseReports
    'CloseFormsandCloseReportscloseanyopenobjects
    'otherthanfrmStart
    EndIf
    3.使用每個(gè)窗體的Open事件處理程序?qū)懭隓oCmd.Maximize。
    4.為打印建立一個(gè)定置的工具條,放置關(guān)閉以及其它的功能按鈕。設(shè)置報(bào)表的菜單為"-1",在工具條上做兩個(gè)限制用戶使用的操作。
    5.使用下面的代碼預(yù)覽報(bào)表:
    DoCmd.OpenReport"TheReport",acViewPreview,...
    CallsRemoveCaption(Reports("TheReport")
    這樣的話,用戶就能:
    1.看到報(bào)表
    2.在工具條操作
    3.最小化access
    好了,如果用戶想關(guān)閉access,可以主菜單來做到,但在報(bào)表預(yù)覽窗口沒有最小化、化以及關(guān)閉按鈕。
    '*********************CodeStart************************
    'ThiscodewasoriginallywrittenbyTerryKreft&KeriHardwick.
    'Itisnottobealteredordistributed,
    'exceptaspartofanapplication.
    'Youarefreetouseitinanyapplication,
    'providedthecopyrightnoticeisleftunchanged.
    '
    'CodeCourtesyof
    'TerryKreft&KeriHardwick
    '
    PrivateTypeRECT'16Bytes
    leftAsLong
    topAsLong
    rightAsLong
    bottomAsLong
    EndType
    PrivateDeclareFunctionapiGetWindowLongLib"User32"_
    Alias"GetWindowLongA"_
    (ByValhwndAsLong,_
    ByValnIndexAsLong)_