2017-09-11 147 views
0

我试图用使用DLookup,看有没有日期已经在一个表,格式是正确的,因为我已经检查并正确输入它,就不能得到正确的使用DLookup。使用使用DLookup与Formatdate

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

Combo87是该月的一天 Combo89是本月 Combo91是一年中的最后两位数字

回答

0

试试这个:

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 
+0

类型不匹配。那是因为年份只显示最后两位数字吗?所以它是17而不是2017. – user2002716

+0

现在试试看,日期部分(年份,月份,日期)不正确。 2位数年份会自动添加,但您可能需要将日期格式设置为“mm/dd/yyyy”。 –

0

您可以使用:

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

其中DateLookup将为“未找到”为空。

,做重命名控件有意义的事。

+0

我结束了使用 'code'If DLookup(“[todays_date]”,“119_review”,“[todays_date] =#”&Format(“”&Me.Combo87&“”&Me.Combo89&“20” &Me.Combo91&“”,中)和“#”)> 0,则'code' 这对我的作品,它的搜索表,发现如果日期是已经在表中。 – user2002716

+0

当我运行调试即时窗口显示'代码UPDATE SET 119_review = Earned_Income 262和Earned_income_withcal = 258.4 WHERE [todays_date] = 9 /二千零十七分之一十三; '但它没有更新表在所有的,这我想是因为日期是在为13月17,而不是2017年9月13日 – user2002716

+0

使用所提供的答案表。它可以工作 - 因为条件会读取“”[todays_date] = DateSerial(17,9,13)“'。 – Gustav