Det er sikkert dit dato format der er problemet. Access godtager mm-dd-yyyy og yyyy-mm-dd formatet, så du skal sikkert have lavet om på "fra" og "til".
Du kan lige så godt få den funktion jeg bruger til at formatere datoer til Access med.
Function ConvertToSqlDate(dato) dim SQLYear,SQLMonth,SQLDay SQLYear = Year(dato) SQLMonth = Month(dato) SQLDay = Day(dato) if SQLDay<10 then SQLDay = 0&SQLDay end if if SQLMonth<10 then SQLMonth = 0&SQLMonth end if ConvertToSqlDate = SQLMonth&"-"&SQLDay&"-"&SQLYear End Function
strSQL = "Select * from statistik where kundenummer = " & kundenummer & " and dato >= #" & ConvertToSqlDate(fra) & "# and dato =< #" & ConvertToSqlDate(til) &"#"
hooh >> Min Access tager ikke dd-mm-yyyy formatet, eller det vil sige det kan den godt. Den kan godt finde ud af at 31-12-2004 er den 31 dec, men 10-01-2004 er den 1. okt. Der er præsis den samme problemstilling med isDate() funktionen i ASP, som validere "31-12-2004" og "12-31-2004" til true, selv om en af dem burde være forkert.
Du har måske en anden version af Access end mig, men alle dem jeg har hjulpet her på E med samme problem, har alle skulle bruge mm-dd-yyyy formatet (når det er Access). Nogle gange har man kunne bruge yyyymmdd formatet, som er mere global, da det format virker i andre databaser (MySQL og MS-SQL)
så giver begge formater samme resultat: Response.Write FormatDateTime("31-12-2004") //12/31/2004 Response.Write FormatDateTime("12-31-2004") //12/31/2004
Nu er det her jo danmark, så jeg foretrækker at køre i dansk format, som jo er dd-mm-yyyy, og det format vil INGEN af de databaser, jeg bruger, fungere 100% med. MySQL og MS-SQL vil slet ikke tage det format, og Access registrere ofte formatet forkert. Derfor convertere jeg formatet til et databasen bruger. Men først kører jeg det gennem et tjek, som sikre at formatet er indtastet i DK format:
function MyIsDate(dato) dim returVal returVal = false if len(dato) = 10 then if isnumeric(left(dato,2)) then if cint(left(dato,2)) >= 1 and cint(left(dato,2)) <= 31 then if isnumeric(mid(dato,4,2)) then if cint(mid(dato,4,2)) >= 1 and cint(mid(dato,4,2)) <= 12 then if isnumeric(right(dato,4)) then if mid(dato,3,1) = "-" and mid(dato,6,1) = "-" then if isDate(dato) then returVal = true end if end if end if end if end if end if end if end if MyIsDate = returVal end function
Undskyld jeg ikke har været ved min pc i dag, men nu fik jeg den da tændt:-)
Tak for de mange bud, men jeg tror i mis´forstå en smule.
Jeg har løst formateringsproblemet på enm lidt "storm p" agtig måde ved at splitte resultatet op med tegnet "-", men mit problem er nu at jeg skal have den første i måneden med også (altså dag =>01 og ikke kun > 01)
Jeg håber det er bedre formuleret. Jeg kan jo dårligt bruge >00 da datoformatet ikke vil acceptere d "nul'te"
=> burde virke, men det er ikke sikkert at <= virker, det kommer an på hvilke informationer du gemmer i databasen. Hvis du ikke har timer/min med burde der ikke være nogle problemer, men har du bliver "16-11-2004" opfattet som "16-11-2004 00:00:00", og laver du en <= på den får du ikke alle dem på dagen med. Hvis du derfor har timer/min med skal du sætte det på søge felterne også.
select * from DinTabel where datoFelt >= #11-16-2004 00:00:00# and datoFelt <= #11-17-2004 23:59:59#
Synes godt om
Ny brugerNybegynder
Din løsning...
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.