源码示例分享!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_OpenFormForDim lngLeft As LongDim lngTop As LongDim lngWidth As LongDim lngHeight As LongDim lngBorderWidth As LongDim CurrentCtl As ControlWith Screen.ActiveFormDim frm As Object'获取当前活动窗体控件名称For Each frm In CurrentProject.AllFormsSet CurrentCtl = Screen.ActiveForm.ActiveControlNext 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.SectionCase acDetaillngTop = lngTop .Section(acHeader).HeightCase acFooterlngTop = lngTop .Section(acHeader).Height .Section(acDetail).HeightEnd Select'打开指定窗体,strArgs传递参数DoCmd.OpenForm frmName, , , , , , strArgs'定位打开窗体到活动窗体控件,lngX,lngY微调补正位置Forms(frmName).Move lngLeft lngX, lngTop lngYEnd WithExit_OpenFormFor:Exit FunctionErr_OpenFormFor:If Err = 2462 ThenResume NextElseMsgBox Err.Description, vbCritical, "Error For Function OpenFormFor"Resume Exit_OpenFormForEnd IfEnd Function

演 示:

access如何设置弹出窗体(Access打开指定弹出式窗体)(1)

示例下载:

Access打开指定弹出式窗体,并将其定位在当前控件下方的示例,Access窗体定位【Access软件网】

,