【问题标题】:Using DLOOKUP with Formatdate将 DLOOKUP 与 Formatdate 一起使用
【发布时间】:2017-09-12 14:33:23
【问题描述】:

我正在尝试使用 dlookup 来查看日期是否已经在表格中,格式是正确的,因为我已经检查过并且正确输入了它,只是无法为 DLOOKUP 正确设置。

Datelookup = DLOOKUP ("[todays_date]", "119_review", "[todays_date] = Format ("" & Me.Combo87 & " " & Me.Combo89 &" 20" & Me.Combo91 & "", medium)")

Combo87 是一个月中的哪一天 Combo89 是月份 Combo91 是年份的最后 2 位数字

【问题讨论】:

    标签: ms-access vba


    【解决方案1】:

    你可以使用:

    Datelookup = DLookup("[todays_date]", "119_review", "[todays_date] = DateSerial(" & Me.Combo91 & ", " & Me.Combo89 & ", " & Me.Combo87 & ")")
    

    其中 DateLookup 将为“未找到”的 Null。

    并将您的控件重命名为有意义的名称。

    【讨论】:

    • 我最终使用了codeIf DLookup("[todays_date]", "119_review", "[todays_date] = #" & Format("" & Me.Combo87 & " " & Me. Combo89 & " 20" & Me.Combo91 & "", Medium) & "#") > 0 然后code 对我有用,它正在搜索表格并查找日期是否已经在表格中。
    • 当我运行调试即时窗口显示 code UPDATE 119_review SET Earned_Income=262 AND Earned_income_withcal=258.4 WHERE [todays_date]=9/13/2017; 但它根本没有更新表格,我认为这是因为日期在表格中为 13-Sep-17 而不是 9 /13/2017
    • 使用提供的答案。它有效 - 因为标准将显示为"[todays_date] = DateSerial(17, 9, 13)"
    • 这对我有用,对不起,我已经过了一分钟了。
    • 谢谢。永远都不迟。那么请标记为已回答。
    【解决方案2】:

    试试这个:

    Sub DL()
        Dim d As Date
            d = DateSerial(Me.Combo91.Value, Me.Combo89.Value, Me.Combo87.Value)
        Datelookup = DLookup("[todays_date]", "119_review", "[todays_date] = #" & Format(d, "Medium") & "#")
    End Sub
    

    【讨论】:

    • 类型不匹配。那是因为年份只显示最后 2 位数字吗?所以它是 17 而不是 2017。
    • 现在试试,日期部分(年、月、日)不正确。 2 位数年份是自动添加的,但您可能需要将日期格式设置为“mm/dd/yyyy”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-02
    相关资源
    最近更新 更多