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

                        常見問答:

                        技術分類:

                        相關資源:

                        專欄作家

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