Access / VB自定义导航按钮 - 按日期转到下一个/上一个

时间:2017-11-20 19:33:33

标签: vba navigation access-vba ms-access-2010 ms-access-forms

我有一个表格,我们的主管每天用生产线来换班。我的子表单(基于查询)按日期显示所有输入的班次(我有一个搜索框,您可以在其中选择日期)。
我的导航按钮(目前只是由Go To First,Next,Last的宏运行)做他们应该做的事情 - 这是移动到下一个/上一个记录,但我想知道是否有办法编码我的按钮按日期移动到下一组记录,而不是仅移动到当前日期内的下一条记录?

例如,当我在日期搜索框中搜索9/28/17时,我的子表单会填充该日期的57条记录。我现在的下一个&以前的按钮只是在该日期的每条记录上逐个移动,然后移动到下一个日期(当然,这是宏告诉它要做的事情!)。我很想能够击中Next并让它跳到9/29/17。不确定这是否可以用宏,但可能有一些VB代码?

我正在使用Access 2010 / VB。我的单个表单将数据保存到单个表中。我的子表单来自查询并显示在数据表视图中。 表单名称 - ShiftRecord2。 子表单 - ShiftProdRecords2_Query_subform。 子窗体当前由ShiftDate填充。 我的主窗体和子窗体通过ShiftDate的Master / Child字段链接。

我不确定你能在我的帮助下看到你需要做什么。我感谢任何和所有帮助/提示/建议/教程/链接!

编辑添加: 我子表单上的当前过滤器字段如下所示:

[ShiftDate] Like "*" & [Forms]![ShiftRecord2]![txtSearchDate] & "*"

2 个答案:

答案 0 :(得分:0)

您可以尝试以下操作:

下一步:

Me.txtSearchDate = DateAdd("d",1, Me.txtSearchDate,)
Me.mySubformName.Requery

一个:

Me.txtSearchDate = DateAdd("d", -1, Me.txtSearchDate)
Me.mySubformName.Requery

答案 1 :(得分:0)

  

我的主表单和子表单通过Master / Child字段链接   ShiftDate。

然后:

  

我子窗体上的当前过滤器字段如下所示:

[ShiftDate] Like "*" & [Forms]![ShiftRecord2]![txtSearchDate] & "*"

如果是这样,删除过滤器并使用Erik的想法作为按钮,然后过滤表单:

Me!txtSearchDate.Value = DateAdd("d", -1, Me!txtSearchDate.Value)
Me.Filter = "ShiftDate = #" & Format(Me!txtSearchDate.Value, "yyyy\/mm\/dd") & "#"
Me.FilterOn = True

Me!txtSearchDate.Value = DateAdd("d", 1, Me!txtSearchDate.Value)
Me.Filter = "ShiftDate = #" & Format(Me!txtSearchDate.Value, "yyyy\/mm\/dd") & "#"
Me.FilterOn = True

不需要重新查询。主/子链接将自动重新查询子表单。