2010-01-12 128 views
1

我有3个表毫秒的存取组合框刷新

章(ID,姓名) 标题(ID,姓名,parentId的) 副标题(ID,姓名,parentId的)

父母的ID上面的表格。

我有3个组合框

章 标题 副标题的形式。

我有用于章节和标题的onchange的vba。此代码工作正常:

 
Private Sub Chapter_AfterUpdate() 
Me.Heading.RowSource = "SELECT [Headings].[ID], [Headings].[Headings], [Headings].[Parent] FROM Headings WHERE [Headings].[Parent] =" & Me.Chapter & " ORDER BY [Headings];" 
Me.Heading.Requery 
End Sub 


Private Sub Heading_AfterUpdate() 
Me.Subheading.RowSource = "SELECT [Subheadings].[ID], [Subheadings].[SubHeading], [Subheadings].[Parent] FROM Subheadings WHERE [Subheadings].[Parent] =" & Me.Heading.Value & " ORDER BY [SubHeading];" 
Me.Subheading.Requery 
End Sub 

上述工作正常,并且窗体正确地将信息保存到新表中。

但是...

当我打开窗体新鲜(关闭访问后),章看来装入组合,但标题和副标题没有。尽管如此,如果我点击vba运行的章节,表中当前保存的记录显示了正确的子值。和小标题相同。

我没有收到任何数据丢失,但我无法使组合框显示保存的数据在全新打开。

即使是新鲜的表格。

任何帮助将非常感谢。

+0

设置行源之后重新请求是多余的 - 您只需要分配rowsource。 – 2010-01-12 23:05:06

回答

2

将标题和副标题的更新代码放入表单的当前事件以及After Update事件中。

+0

更好的是,为每个行源分配创建一个子例程,并从AfterUpdate和OnCurrent中调用该子例程。 – 2010-01-12 23:06:21