假设我在FORM1中有个DTP1控件,我想在FORM_LOAD时,把DTP1的日期显示为6个月前的第一天,假设今天是2009-08-18,则FORM_LOAD时,DTP1的日期显示为2009-02-01 该怎么用语句呢???如果是一年前的第一天,又该怎么呢?

解决方案 »

  1.   

    Private Function SixMonthAgo(dt As Date) As Date
        Dim tDt As Date
        tDt = DateAdd("m", -6, dt)
        SixMonthAgo = Format(tDt, "yyyy-mm-01")
    End Function
      

  2.   

    Private Sub Command1_Click()
        Dim datTemp As Date
        
        datTemp = DateAdd("m", -6, "2009-08-18")
        
        MsgBox Year(datTemp) & "-" & Month(datTemp) & "-01"
        
    End Sub
      

  3.   

    DTP1.Value = Format(Year(Date) & "-" & Month(Date) - 6 & "-01", "yyyy-MM-dd")
      

  4.   

    Private Sub Command1_Click()
        Dim datTemp As Date
        
        datTemp = DateAdd("m", -6, "2009-08-18")
        
        MsgBox Year(datTemp) & "-" & Month(datTemp) & "-01"
        
    End Sub从挑最少的语句就看出来了,自己不动脑筋的,这么好的例子都不
    去研究下,一下又回来报错!!
      

  5.   

    写个通用函数
    Private Sub Command1_Click()
        MsgBox GetAgoMonthFirstDay(Now, 6)
    End SubPrivate Function GetAgoMonthFirstDay(ByVal refDate As Date, ByVal difMonth As Integer) As Date
        Dim datTemp As Date
        
        datTemp = DateAdd("m", -difMonth, refDate)
        GetAgoMonthFirstDay = Format(datTemp, "yyyy-mm-01")
    End Function