代码之家  ›  专栏  ›  技术社区  ›  Summer044

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

  •  0
  • Summer044  · 技术社区  · 7 年前

    我有一个表格,我们的主管每天用它按生产线输入他们的班次。我的子窗体(基于查询)按日期显示所有输入的班次(我有一个搜索框,您可以在其中选择日期)。
    我的导航按钮(目前只是通过宏运行,用于转到第一个、下一个、最后一个)执行它们应该执行的操作,即移动到下一个/上一个记录,但我想知道是否有一种方法可以对我的按钮进行编码,按日期移动到下一组记录,而不是只移动到当前日期内的下一个记录?

    例如,当我在“日期搜索”框中搜索2017年9月28日时,我的子窗体将填充该日期的57条记录。我当前的下一个(&M);之前的按钮只需在该日期的每条记录上逐个移动,然后再移动到下一个日期(当然,这是宏告诉它要做的!)。我希望能够打下一个,并让它跳到2017年9月29日。不确定这在宏中是否可行,但可能在一些VB代码中?

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

    我不知道你需要看到我这方面的什么才能提供帮助。我感谢所有帮助/提示/建议/教程/链接!

    编辑以添加: 我的子窗体上的当前筛选器字段如下所示:

    [ShiftDate] Like "*" & [Forms]![ShiftRecord2]![txtSearchDate] & "*"
    
    2 回复  |  直到 4 年前
        1
  •  1
  •   Gustav    7 年前

    我的主窗体和子窗体通过 换档日期。

    然后:

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

    [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
    

    无需重新询问。主/子链接将自动重新查询子窗体。

        2
  •  1
  •   Erik A    7 年前

    您可以尝试以下操作:

    下一步:

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

    上一个:

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