Hvor start1 = 26 jan 2007 og start2 er = 12 feb 2007.
I min testdatabase har jeg to records, hvor datoerne er:
28 jan 2007 og 10 feb 2007.
Jeg anvender følgende SQL:
SQL = "SELECT * FROM tbl_test " & _ "WHERE Dato BETWEEN " & "'" & start1 & "'" & " and " & "'" & start2 & "'" rssum.Open SQL, dbsum, 1, 3
Jeg forventer et udtræk, hvor jeg får begge records med, men det sker ikke fordi den først dato (start1) er større end dato (start2) dvs. jeg får kun record nr. 2 ud (feb. måned).
Men hvordan får jeg begge records med i udtrækket?
Normal er et udtræk i DTPicker fra d. 01 jan 2007 til d. 10 jan 2007 og her virker det fint nok for dato et er mindre.
Stadigvæk true men ingen compiler fejl i SQL. Men hvis du siger, at du tjekker på tal, så er første tal jo også højre end tal 2 dvs. 26 her større end 12 og derfor finder SQL ikke noget og viser recordset = true. I min DTPicker er dato altid på to cifre 01, 12 osv.
Se, hvis jeg ændrede data i min database, så første data (start1) var f.eks. 11 jan 2007 og start2 var 12 feb 2007, så lykkes din SQL fordi start1 er mindre end 12 feb 2007 altså 11 jan 2007, så derfor virker din SQL. Men igen, hvis start1 ændres til større end 12, så giver recordset = true. damm take it :-).
så skal man sikkert konvertere din dato'er til rigtigte dato'er men ved ikke rigtig hvordan man gør det når du har dine dato'er på den måde. fordi de ikke er skrevet som 01/01/2007 men 01 jan 20007
ja men jeg har ikke rigtig benyttet funktionen da mine dato'er aldrig er strings:) men det vil jo helt sikkert løse problemet da du så får data der kan sammenlignes korrekt
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.