VB中有cmbYear,cmbMonth1二个下拉列表框.选择年和月,统计出相关的数据选取2006年11月份,比如1号是星期三,那么统计从10月30号开始算,这算一周.以此内推,11月就应该有5周.分别统计出5周得数据量

解决方案 »

  1.   

    Dim sz_StartDate As Date
    Dim sz_EndDate As Date
    Dim sz_SelMonth As String
    Dim sz_MonthStartDay As Date
    Dim sz_MonthEndDay As Date
    sz_SelMonth = "2006-11"
    sz_SelMonth = sz_SelMonth
    Dim sz_WeekDayofStartDay As Integer
    Dim sz_WeekDayofEndDay As Integer
    sz_WeekDayofStartDay = Weekday(DateValue(sz_SelMonth & "-01"), vbMonday)
    sz_WeekDayofEndDay = Weekday(DateValue(sz_SelMonth & "-30"), vbMonday)
    sz_MonthStartDay = DateAdd("d", -(sz_WeekDayofStartDay - 1), DateValue(sz_SelMonth & "-01"))
    sz_MonthEndDay = DateAdd("d", 7 - sz_WeekDayofEndDay, DateValue(sz_SelMonth & "-30"))
    sz_StartDate = sz_MonthStartDay
    Do While sz_StartDate < sz_MonthEndDay
      sz_EndDate = DateAdd("d", 6, sz_StartDate)
      Debug.Print "时间段为:" & sz_StartDate; "至" & sz_EndDate  '这儿改成数据统计代码
      sz_StartDate = DateAdd("d", 7, sz_StartDate)
    Loop
      

  2.   

    如果用SQL语句如何实现呢???数据表里面有日期的字段!!!!
      

  3.   

    看过好几次关于时间的问题了Private Sub Command1_Click()Dim strTime As Date
    Dim intWeek As Integer
    Dim strNowMonth As Date
    Dim strLastMonth As Date '下个月1号
    Dim strFirstDay As Date
    Dim strSql As StringstrSql = ""'得到当前时间
    strTime = Now()
    '计算当月第一天
    strNowMonth = Year(strTime) & "-" & Month(strTime) & "-1"
    '计算下个月第一天
    strLastMonth = DateAdd("M", 1, strNowMonth)'判断当月第一天星期几
    intWeek = Weekday(strNowMonth, vbMonday)'计算当月第一周的周一是几号
    strFirstDay = DateAdd("d", -intWeek, strNowMonth)
    '计算当月第一周的周日是几号
    strLastDay = DateAdd("d", 7, strFirstDay)Do
        
        
        '生成SQL语句
        
        strSql = strSql & "select * from tablename " & _
                "where TimeField between '" & strFirstDay & "' and '" & strLastDay & "';" & vbCrLf & vbCrLf
        
        '计算下一周周一
        strFirstDay = DateAdd("d", 1, strLastDay)
        '计算当月第一周的周日是几号
        strLastDay = DateAdd("d", 7, strFirstDay)
            
    Loop Until strFirstDay > strLastMonth
            
            
    Text1.Text = strSql
    End Sub