<pre id="p1prn"><ruby id="p1prn"><b id="p1prn"></b></ruby></pre>
<pre id="p1prn"><ruby id="p1prn"><b id="p1prn"></b></ruby></pre>
<track id="p1prn"></track>

<pre id="p1prn"></pre>

<noframes id="p1prn">
    <pre id="p1prn"><strike id="p1prn"></strike></pre>
      <p id="p1prn"><ruby id="p1prn"></ruby></p>
        <p id="p1prn"><pre id="p1prn"><b id="p1prn"></b></pre></p>
        Access快速開發基礎教程
        網站公告
        ·Access專家課堂QQ群號:151711184    ·Access快速開發平臺下載地址及教程    ·歡迎加入Access專家課堂微信群!    ·如何快速搜索本站文章|示例|資料    
        您的位置: 首頁 > 技術文章 > Access數據庫-模塊/函數/VBA

        Access打開指定彈出式窗體,并將其定位在當前控件下方的示例,Access窗體定位

        時 間:2022-08-13 08:48:55
        作 者:鼠標   ID:27902  城市:嘉定
        摘 要:Access打開指定彈出式窗體,并將其定位在當前控件下方。
        正 文:

        '經修改Access網友的源碼而來

        '函數名稱: OpenFormFor

        'frmName:,必選參數,需要打開的窗體名稱
        '功能描述: 打開一個彈窗式窗體定位到當前活動窗體活動控件

        '2022-08-13更新了一下代碼

        Public Function OpenFormFor(frmName As String, Optional strArgs As String, Optional lngX As Long = 0, Optional lngY As Long = 0)
            On Error GoTo Err_OpenFormFor
            Dim lngLeft As Long
            Dim lngTop As Long
            Dim lngWidth As Long
            Dim lngHeight As Long
            Dim lngBorderWidth As Long
            Dim CurrentCtl As Control
            
            With Screen.ActiveForm
                Dim frm As Object
                '獲取當前活動窗體控件名稱
                For Each frm In CurrentProject.AllForms
                    Set CurrentCtl = Screen.ActiveForm.ActiveControl
                Next frm
                '計算窗體左右邊框寬度
                lngBorderWidth = (.WindowWidth - .InsideWidth) / 2 
                lngLeft = .WindowLeft + CurrentCtl.Left
                '判斷是否有記錄選擇器
                If .RecordSelectors Then lngLeft = .WindowLeft + .WindowWidth - .InsideWidth + CurrentCtl.Left - CurrentCtl.BottomPadding / 2
                '====================
                lngHeight = (.WindowHeight - .InsideHeight - lngBorderWidth)
                '計算定位的Y位置
                lngTop = .WindowTop + CurrentCtl.Top + CurrentCtl.Height + lngHeight / 2 + lngBorderWidth - CurrentCtl.BottomPadding
                '判斷活動控件位置在窗體頁眉或頁腳位置
                Select Case CurrentCtl.Section
                Case acDetail
                    lngTop = lngTop + .Section(acHeader).Height
                Case acFooter
                    lngTop = lngTop + .Section(acHeader).Height + .Section(acDetail).Height
                End Select
                '打開指定窗體,strArgs傳遞參數
                DoCmd.OpenForm frmName, , , , , , strArgs
                '定位打開窗體到活動窗體控件,lngX,lngY微調補正位置
                Forms(frmName).Move lngLeft + lngX, lngTop + lngY
            End With
            
        Exit_OpenFormFor:
            Exit Function
            
        Err_OpenFormFor:
            If Err = 2462 Then
                Resume Next
            Else
                MsgBox Err.Description, vbCritical, "Error For Function OpenFormFor"
                Resume Exit_OpenFormFor
            End If
        End Function




        示   例:

        點擊下載此附件


        演   示:

        點擊圖片查看大圖




        Access軟件網官方交流QQ群 (群號:312594938)       Access源碼網店

        常見問答:

        技術分類:

        相關資源:

        專欄作家

        關于我們 | 服務條款 | 在線投稿 | 友情鏈接 | 網站統計 | 網站幫助