访问查询。如果记录到期日=上周在单元格中插入是

时间:2015-09-21 16:34:09

标签: ms-access access-vba ms-access-2010

早上好,全部,

我正在研究以下内容,但我无法理解我的生活。我的表包含一堆截止日期。我想要做的是添加一个添加另一个字段的查询,如果日期等于上周的一天,则插入一个yes。老实说,我需要它插入是,只要它不=本周。

我尝试过使用:

Urgent: IIf([Due Date]=[Due Date] 
Between 
DateAdd("d",1-Weekday(Date()) 7, Date()) And 
DateAdd("d",1-Weekday(Date())-1, Date()),"Yes","")
没有运气。我在这里想念的是什么?!

谢谢大家。欢呼声。

1 个答案:

答案 0 :(得分:1)

如果'不是本周'意味着上周六及之前,这里是如何返回紧急。不知道如果没有代码你会怎么做。

Helper函数根据当前日期获取本周的第一天。将其粘贴到新的或现有的全局模块中。

Function FirstDateOfTheWeek() As Date
  Dim dt As Date

  If Weekday(Date) = vbSaturday Then
    FirstDateOfTheWeek = DateAdd("y", -6, Date) 'today is Saturday? then return previous Sunday
  ElseIf Weekday(Date) = vbSunday Then
    FirstDateOfTheWeek = Date 'today is Sunday? then return Sunday because its the first day of the week
  Else 'weekday, so just go backwards until we hit previous sunday's date
    dt = Date
    While Weekday(dt) <> vbSunday
      dt = DateAdd("y", -1, dt)
    Wend
    FirstDateOfTheWeek = dt
  End If

End Function

从查询中调用的IsUrgent函数。将其粘贴到新的或现有的全局模块中。

Function IsUrgent(dt As Variant) As String

  If IsNull(dt) Then 'if null date is passed then return blank string; Variant chosen instead of date for this case; change it to N/A if you want?
    IsUrgent = ""
    Exit Function
  End If

  If dt < FirstDateOfTheWeek Then
    IsUrgent = "Yes"
  Else
    IsUrgent = ""
  End If

End Function

调用列调用IsUrgent()函数:

IsUrgent: IsUrgent([Due Date])