根据当天创建提醒

时间:2014-03-01 01:15:23

标签: date vb6

我正在制作DTR,并且在此DTR的Form_Load上,我希望它检查当前日期。当它到达当月的13日,14日,15日,26日,27日,28日,29日或30日时,我希望它能够弹出一个msgbox,提醒其员工的工资。但是,当我运行我的代码时,即使它与我希望它到msgbox的那天不匹配,它仍然是消息框。例如,如果当前日期是该月的第3天,它仍会弹出一个msgbox。这是我的代码。我没有使用计时器。

    Dim strDate As Integer
    If strDate = Format(Now, "d") = 13 Or 14 Or 15 Or 27 Or 28 Or 29 Or 30 Then
           'DatePart("d", Now)
             If MsgBox("Alert Edwin Jay Sandoval or Maria Consuelo regarding your salary!", vbCritical + vbOKOnly, "Salary") = vbOK Then
          MsgBox "Alert Edwin Jay Sandoval or Maria Consuelo regarding your salary!", vbCritical + vbOKOnly, "Salary"
    End If
End If

2 个答案:

答案 0 :(得分:1)

您不应使用Format函数来获取日期组件。 Format用于返回指定日期的格式化字符串。 VB通过将字符串转换为整数来进行比较,从而帮助您。使用VB的Day()Month()Year()函数来提取日期组件。

Dim intDay As Integer
intDay = Day(Date)

Select Case intDay
    Case 13 To 15, 26 To 30
        ' Match
    Case Else
        ' No Match
End Select

答案 1 :(得分:0)

您目前正在将当天比较为13,而其他字词则在OR声明中。

您需要执行以下操作:

If (Format(Now, "d") = 13) Or (Format(Now, "d") = 14) _
Or (Format(Now, "d") = 15) Or (Format(Now, "d") = 27) _
Or (Format(Now, "d") = 28) Or (Format(Now, "d") = 29) _
Or (Format(Now, "d") = 30) Then
...

您应该首先将日期编号拉出变量。