<track id="9vv7v"><strike id="9vv7v"><rp id="9vv7v"></rp></strike></track>
<pre id="9vv7v"></pre>
    
    

        
        

              <pre id="9vv7v"><strike id="9vv7v"></strike></pre>

              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源碼網店

              常見問答:

              技術分類:

              相關資源:

              專欄作家

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