0

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

例如,当我在日期搜索框中搜索 9/28/17 时,我的子表单会填充该日期的 57 条记录。我当前的“下一个”和“上一个”按钮只是在该日期的每条记录上一个接一个地移动,然后再移动到下一个日期(当然,这就是宏告诉它要做的事情!)。我希望能够点击 Next 并让它跳到 2017 年 9 月 29 日。不确定这是否可以通过宏实现,但也许可以通过一些 VB 代码实现?

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

我不确定您需要在我这边看到什么才能提供帮助。我感谢任何和所有帮助/提示/建议/教程/链接!

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

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

2 回答 2

1

您可以尝试以下方法:

下一个:

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

以前的:

Me.txtSearchDate = DateAdd("d", -1, Me.txtSearchDate)
Me.mySubformName.Requery
于 2017-11-20T21:12:30.243 回答
1

我的主表单和子表单通过 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

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

于 2017-11-21T08:08:34.933 回答