【问题标题】:Add Query with Month filter to an Access Database with Date/Time Field将带有月份过滤器的查询添加到带有日期/时间字段的 Access 数据库
【发布时间】:2015-08-22 23:11:20
【问题描述】:

我有一个 Access 数据库,其中许多字段通过我的 vb.net 项目中的 datagridview 连接。其中两个字段包含日期/时间值。我想通过查询生成器创建一个查询,该查询生成器使用来自用户的输入来查找与用户想要的日期匹配的记录。这个“where 子句”有效:

WHERE BETWEEN ? AND ?

这将创建一个工具条,我可以在其中输入 2 个日期,以便查询可以用记录填充 datagridview。

我现在想要的是只在用户输入他想要的月份名称(例如 February 或 02 )时进行上述查询。有什么办法吗?

编辑:尝试使用 Plutonix 的代码(Sailing 是列名):

WHERE SAILING BETWEEN #01/31/yyyy# AND #03/01/yyyy#

我收到此错误:“可能需要无法将条目转换为有效的日期时间 TO_DATE 函数”

编辑 2:我创建了一个包含所有 12 个月的组合框,并且我有一个命令按钮。我想找到一种方法,以便如果用户从该组合框中选择 12 个月中的一个并单击命令按钮,让 datagridview 控件(访问数据库)仅根据日期时间向他显示该月的记录(短日期)字段。我应该在我的 commandbutton_click 中输入什么代码?

【问题讨论】:

  • 我会使用组合框来避免拼写错误(“febuary”),否则查询只需要将目标日期/范围 WHERE yourDateColumn BETWEEN #01/31/yyyy# AND #03/01/yyyy# 括起来。我不记得 BETWEEN 是否具有包容性,但你应该明白
  • 我收到此错误“可能需要将条目转换为有效的日期时间 TO_DATE 函数
  • 这听起来不像是 SQL 错误,所以您应该显示您使用的代码(Edit 您的问题)。
  • 我使用了你上面给我的确切代码。
  • 你需要用年份代替“yyyy”! SQL 的 BETWEEN 也包含在内,因此在您从用户那里获得月份后,您需要计算该月的开始和结束时间(28、29、30 或 31 天)。如果你使用 SQL 参数和 DateTime 类型,只传递dateVar.Date 否则时间部分会搞砸你。

标签: vb.net


【解决方案1】:

最终我创建了一个长查询,在其中添加了“Between ? and ?”在数据库中包含的每一年(2004-2015)的 where 子句中,创建了一个巨大的 if 子句,它给出了每年请求的月份的开始和结束,并使用所有这些字符串来查询数据库。

 If Month.Text = "JANUARY" Then
        A04A = "01/01/04"
        A04B = "31/01/04"
        A05A = "01/01/05"
        A05B = "31/01/05"
        A06A = "01/01/06"
        A06B = "31/01/06"
        A07A = "01/01/07"
        A07B = "31/01/07"
        A08A = "01/01/08"
        A08B = "31/01/08"
        A09A = "01/01/09"
        A09B = "31/01/09"
        A10A = "01/01/10"
        A10B = "31/01/10"
        A11A = "01/01/11"
        A11B = "31/01/11"
        A12A = "01/01/12"
        A12B = "31/01/12"
        A13A = "01/01/13"
        A13B = "31/01/13"
        A14A = "01/01/14"
        A14B = "31/01/14"
        A15A = "01/01/15"
        A15B = "31/01/15"
        A16A = "01/01/16"
        A16B = "31/01/16" 
ElseIf etc etc

【讨论】:

    猜你喜欢
    • 2018-01-07
    • 2015-06-01
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-09
    相关资源
    最近更新 更多