2016-08-11 66 views
-2

我有一個傳統的vb6應用程序,用戶輸入txtFrom和txtTo日期。我必須運行SQL SERVER到tblA的查詢,其中有FROM和TO日期的記錄來計算它們有多少個記錄。我將如何運行一個循環以txtFrom和txtTo之間的每個日期來計算記錄,在TBLA循環驗證日期VB

RecNo   FromDate   ToDate 
1    8/11/2016   8/21/2016 
2    8/13/2016   8/23/2016 

該日期存在,所以基本上我想要做這樣的事情

For each day between txtFrom and txtTo 

Select RecNo from tblA where txtDate is between FromDate and Todate 
if recordcount >5 then 
    msgbox "Too many" 
End if 

Next date 

的#現在我有一個好主意如何做它的SQL部分,我只是不知道如何遍歷日期,以便我可以使用它們來檢查記錄計數。

也許你則DateDiff然後做一個當x = 1則DateDiff,然後做eachdate

+0

你不需要循環。你可以在一個查詢中完成。 –

+0

我該怎麼做? – BobSki

+0

@davidccram非常有幫助! – BobSki

回答

0

回答DATEADD,這裏是我做到了....

Date3 = format(txtfrom,"mm/dd/yyyy") 
For x = 0 to datediff("d",txtFrom,txtto) 
    select RecNo from tblA where date3 between tblA.FromDate and tblA.ToDate 
    rs.open <--- check my record count if everything good then 
    Date3 = dateadd("d",1,Date3) 

next 
+0

仍然看起來像我的僞代碼。在獲得有效的記錄數之前,您將需要rs.movelast。 – dbmitch

+0

@dbmitch - 但我以這種方式運行它。基本上在循環開始之前,我將它設置爲FROM日期,然後在循環中移動,直到達到DATEDIFF的計數 - 因此,如果我在2016年8月15日的FROM和2016年8月20日的TO中投入循環,是x = 0到5,在它結束時,它只是退出循環。似乎工作正常。我將如何在這個循環中使用rs.movelast? – BobSki