我是新手。我创建了一个包含3个选项卡的导航表单。当我单击一个选项卡时,它会打开一个弹出窗体,我从下拉列表中选择一个记录。当我点击命令按钮“打开文件”时,我希望表单在选项卡的“子窗体窗口”中打开。目前所做的只是在一个单独的窗口中打开 如何在导航子窗体窗口中打开表单,并在基于组合框的字段中显示正确的信息?
Private Sub Amend_record_Click()
On Error GoTo Err_Amend_record_Click
Dim stDocName As String
Dim stLinkCriteria As String
vFormName = Screen.ActiveForm.Name
stDocName = "invoice_amend"
vtest = Me![Combo0]
stLinkCriteria = "[InvoiceID]=" & Me![Combo0]
DoCmd.OpenForm stDocName, acNormal, , , acFormEdit, , stLinkCriteria
Forms![navigation_form]!NavigationButton18.SetFocus
DoCmd.Close acForm, vFormName
Exit_Amend_record_Click:
Exit Sub
Err_Amend_record_Click:
MsgBox Err.Description
Resume Exit_Amend_record_Click
End Sub
答案 0 :(得分:0)
所以你有一个名为 navigation_form 的表格,其中包含一个导航控件。通过选择并查看属性来获取该控件的名称 - 假设名称为 NavigationSubform (我认为是默认名称)。
而不是您的代码行DoCmd.OpenForm stDocName...
,您需要使用:
With Forms![navigation_form]![NavigationSubform]
.SourceObject = stDocName
.Form.Filter = stLinkCriteria
.Form.FilterOn = True
End With
这将打开您需要的表单,过滤到您需要的记录,但不是在新窗口中显示它,而是显示为原始表单的子表单。
答案 1 :(得分:0)
这是一个更简单的解决方案(我认为):
DoCmd.OpenForm "navigation_form"
Forms("navigation_form").NavigationControl0.Tabs(1).SetFocus
SendKeys " ", True
NavigationControl0
是navigation_forms
中包含按钮的块。
Tabs(1)
是菜单中的第二个标签(可以更改)。最后一个命令SendKeys " ", True
模拟点击以打开正确的表单。