MS Access - 通过记录组推进

时间:2015-01-15 22:33:45

标签: forms vba ms-access

我有一个包含子表单的表单。子表单的记录源如下:

SELECT [firstID], [secondID], [AAA], [BBB], [CCC], [DDD] 
FROM   Table1 
WHERE  firstID = [Forms].[frm1].[txtfirstID]; 

子窗体在txtfirstID的基础上将记录组合​​在一起,但是当我通过记录选择器前进时,它按预期方式遍历每条记录。我想知道是否有办法点击群组而不是每个群组中的每条记录。我愿意接受任何方式。也许通过VBA过滤?

谢谢!

2 个答案:

答案 0 :(得分:1)

首先,在表单中添加一个组合框。将组合框的RecordSource设置为不同的组列表,或者,如果您有组查找表,则select * from tblGroups。将显示字段设置为组名,将值字段设置为组ID。

其次,从组合框中选择一个项目后,修改表单的RecordSource sql(您的查询),以便它使用组合框的当前值。组合框的值将是你的where子句应该寻找的。

答案 1 :(得分:0)

我认为你可以用两种方法解决这个问题:

1.-如果您通过字段将主窗体与子窗体相关联。在这种情况下,主要的TxtFirstID为子窗体的FirstID。当更改主窗体并在子窗体上自动过滤时,它完成所有工作
2.-您可以在主表单上执行和事件OnChange表单TxtFirstID。

Sub TxtFirstID_Change()
Me.subfrmName.Form.RecordSource = "Select * from table1 where firstID=" & Me.TxtFirstID 'change the record source for the SubForm
me.subfrmName.Form.Requery 'Force Access to refresh the Record Source
end sub