Word文档遮盖的Access 2016弹出用户窗体
我有一个Access 2016数据库,其中包含我在Word文档中使用的作者和参考。作者包含在与引用表关联的一个表中。
如果我需要输入到Word中的数据不在数据库中,则我将弹出一个Access UserForm,以将数据输入数据库中。问题是我使用并排打开的2个Word文档,这占据了全屏显示,并且Word文档后面覆盖了Access Userform。由于UserForm是弹出式和模式式的,因此冻结了所有内容。我想出的唯一解决方法是在调用弹出窗口时强制Word窗口最小化,但这不是最佳选择。
Word中的此Sub调用Access UserForm:
Sub OpenDataEntryForm(stAuthor As String)
Dim acc As Access.Application
Dim lngAuthor As Long
Dim stOpenArgs As String
Application.WindowState = wdWindowStateMinimize
Set acc = New Access.Application
With acc
.Visible = False
.OpenCurrentDatabase stAccPath 'stAccPath is a constant
lngAuthor = .DLookup("[ID]", "[tblAuthors]", "[Authors] = '" & _
stAuthor & "'")
stOpenArgs = CStr(lngAuthor)
.DoCmd.OpenForm "frmDataEntry", acNormal, , , acFormAdd, _
acDialog, stOpenArgs
.Quit
End With
Application.WindowState = wdWindowStateMaximize
End Sub
这是用户窗体的加载事件子项:
Private Sub Form_Load()
If Not IsNull(Me.OpenArgs) Then
Me!Authors = CLng(Me.OpenArgs)
Me.SetFocus
Me!OriginalRef.SetFocus
Else: Me!Authors.Locked = False
End If
End Sub
使用以上代码,Word窗口将最小化,以便可以将数据输入到Access UserForm中。我需要找到一种方法,在调用Access UserForm时将其带到文档的前面,这样就不必最小化文档窗口。
答案 0 :(得分:0)
使用来自Cindy Meister的链接:VBA API declarations. Bring window to front , regardless of application,我能够将以下代码行添加到Access UserFrom Form_Load事件中:
AppActivate Me.Caption
现在,无论何时调用UserForm,它都会放在最前面。