访问使用列表框中选择的项目更新子表单
Posted
技术标签:
【中文标题】访问使用列表框中选择的项目更新子表单【英文标题】:Access Updating the Subform with Item selected in Listbox 【发布时间】:2015-10-27 15:15:32 【问题描述】:我有以下代码执行以下操作: 1.从视图表中删除数据 2.将数据从主表追加到主表 3. 选择附加记录的 ID & Product nr 并填充到视图表中 4.清除主窗体上的控件 5.刷新表单
注意:ID 列表框行源是从视图表中选择 ID 查询。当我单击列表框中的 ID 时,会填充子表单。但是,我希望它在填充 ID 框后提示子表单填充。
问题:在添加记录后,ID 列表框填充,它选择项目,但是子表单(通过主 - 子链接)不会重新查询列表框中选择的 ID nr 的记录数据。
Private Sub cmdInsert_Click()
Dim ctl As Control
DoCmd.SetWarnings (WarningsOff)
CurrentDb.Execute "delete from EC_ID_Table"
DoCmd.OpenQuery ("EC_Insert_New_Record")
DoCmd.OpenQuery ("EC_ID_Table qry")
For Each ctl In Form_frmEC.Controls
Select Case ctl.ControlType
Case acTextBox
If ctl.Name <> "ID" Then
ctl.Value = ""
End If
Case acOptionGroup, acComboBox, acListBox
ctl.Value = Null
Case acCheckBox
ctl.Value = False
End Select
Next
DoCmd.SetWarnings (Warningson)
MsgBox "Insert Complete!"
Me.Form.Refresh
Me.ID.Selected(0) = True
End Sub
谢谢!
【问题讨论】:
@WayneG.Dunn - 请帮忙! 【参考方案1】:尝试刷新子表单。我认为它是这样的:
Forms!Mainform!Subform1.Form.Refresh
(在适用的情况下更改 Mainform 和 Subform1 的名称)。
否则,您可以尝试重建 RecordSource:
Forms!Mainform!Subform1.Form.RecordSource = "SELECT * FROM MyTable"
【讨论】:
.Refresh
只更新当前记录,但如果还没有加载记录,则必须使用.Requery
。我想。
@Andre451 从我可以看到的 frmEC_sub.Form.Requery 刷新子表单。但是我的印象是子表单子字段看不到存储在主字段中的值。我必须单击它才能填充子表单。
问题已解决 - 我添加了 Me.Form.Refresh Me.ID.SetFocus Me.ID.Selected(0) = True frmEC_sub.Form.Requery 谢谢大家!以上是关于访问使用列表框中选择的项目更新子表单的主要内容,如果未能解决你的问题,请参考以下文章