i have this code that when u pick annually and enter 2 dates it adds the dates to database here is the code
Select Case Combo1(0).Text ' Combo1(0) is the zero(0) index of the combo box control arrayCode:If Text1(4).Text = "" And Text1(5).Text = "" Then Text1(4).Text = Text1(1).Text Text1(5).Text = Text1(2).Text Else ' User Entered Data So Use That Text1(1).Text = Text1(4).Text Text1(2).Text = Text1(5).Text End If
Case "A"
Call Annually(Text1(0).Text, Text1(1).Text, Text1(2).Text)
Code:Public Sub Annually(SecID As String, INTSTRTDTE As String, INTENDDTE As String) Dim dteRunningDate As Date Dim VDate As Date Dim i As Integer Dim intInterval As Integer Dim sTempCalendar As String Dim dte As Date Dim sSql As String Dim Seq As String Dim sTempCCY As String sSql = "DELETE FROM SCHC WHERE SECID = '" & UCase(Text1(0).Text) & "'" DBCALL "SELECT", "SCHC", sSql Seq = 0 'dteRunningDate = CheckDateRules(DateAdd("m", 1, dteRunningDate)) dte = (DateAdd("m", 12, INTSTRTDTE)) ' Vdate = (DateAdd("m", 12, INTSTRTDTE)) dteRunningDate = CheckDateRules(VDate) dteRunningDate = Format(CDate(dteRunningDate), "dd mmm yyyy") 'dteRunningDate = CheckDateRules(DateAdd("m", 1, INTSTRTDTE)) Do While dteRunningDate <= INTENDDTE sSql = "INSERT INTO SCHC VALUES('" & SecID & "','" & Seq & "','" & INTSTRTDTE & "','" & dteRunningDate & "')" DBCALL "SELECT", "SCHC", sSql If result <> 100 Then Message 43 result = 1 End If Debug.Print SecID & vbTab; Seq & vbTab; INTSTRTDTE & vbTab & dteRunningDate INTSTRTDTE = dteRunningDate 'dteRunningDate = CheckDateRules(DateAdd("m", 1, dteRunningDate)) dte = (DateAdd("m", 12, dte)) dteRunningDate = CheckDateRules(dte) dteRunningDate = Format(CDate(dteRunningDate), "dd mmm yyyy") Seq = Seq + 1 Loop If dteRunningDate <> INTENDDTE Then sSql = "INSERT INTO SCHC VALUES('" & SecID & "','" & Seq & "','" & INTSTRTDTE & "','" & INTENDDTE & "')" DBCALL "SELECT", "SCHC", sSql If result <> 100 Then Message 43 result = 1 End If End If End Sub
it works fine if u enter a the dates say 20 jan 2010 - 20 jan 2013
it returns the following
11.375FNBS49 0 20100120 20110120
11.375FNBS49 1 20110120 20120120
11.375FNBS49 2 20120120 20130120
11.375FNBS49 3 20130120 20130120
which is right
but there could be a case where the dates in two of the text boxes are 20 jan 2010 - 20 jan 2013
but i want to say start at the 20 march 2010 - 20 jan 2013
so what i want to happen is the first entry is
20 jan 2010- 20 march 2010
and then go from the 20 march 2010 to the 20 jan 2013
how can i change my code for this to work


Reply With Quote