Brugeren kan søge efter en post hvis de indtaster en dato efter formatet dd.mm.åååå.
Men den kan ikke finde ud af at sammenligne det:
elseif soegefter ="dato" then
strSQL = "SELECT Journalnr, Lokation, Sendt_dato, Sagsbehandler, Klientnavn, Cprnummer, Status FROM Koretest k WHERE (k.Status = 'Til kundecenter') AND (k.Sendt_dato LIKE '%" & soegestreng & "%') ORDER BY k.Journalnr DESC"
Hvordan laver jeg soegestreng om til formatet dd/mm/åå?
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Hvis kolonnen Sendt_Dato er af typen Date/Time så: "Fejlen" skyldes at Access bruger US eller UK dato format som er yyyy-mm-dd eller mm-dd-yyyy via SQL. Når man så indsætter en dato i dansk dato format, hvor dagen er først så bytter den rundt på månede og dag i datoen.
Der er en løsning og der er at bruge dato funktionerne Year, Month og Day til at formatere din dato.
Jeg har nok formuleret mig lidt kringlet :) Problemet er ikke at indsætte i databasen. Jeg formaterer til us-format på følgende måde:
indgaetdato = Request.Form("inddato")
if indgaetdato <>"" then indgaetdatous = split(indgaetdato,".") indgaetdato = indgaetdatous(2) & "-" & indgaetdatous(1) & "-" & indgaetdatous(0) kolDato = kolDato & ", Indgaet_dato" dataDato = dataDato & ", #" & indgaetdato & "#" end if
Problemet opstår når brugeren angiver en dato i et søgefelt og en sql-sætning skal finde poster der matcher i basen.
F.eks. hvis brugeren indtaster 16.12.2003 i et felt. Hvis jeg hiver dette ud i nedenstående variabel:
soegestreng = Request.Form("soegeord")
Nu vil jeg så lave en sql som finder poster:
elseif soegefter ="dato" then
strSQL = "SELECT Journalnr, Lokation, Sendt_dato, Sagsbehandler, Klientnavn, Cprnummer, Status FROM Koretest k WHERE (k.Status = 'Til kundecenter') AND (k.Sendt_dato LIKE '%" & soegestreng & "%') ORDER BY k.Journalnr DESC"
Ovenstående sql finder ikke nogle poster!!! Hvis brugeren derimod indtaster 16/12/03 så finder den posterne.. Det er vel fordi at serveren er sat op til formatet dd/mm/åå... Problemet er bare at brugeren skal indtaste efter formatet: dd.mm.åååå
Kan man ikke på en eller anden måde lave sqlen, så formatet er den samme som brugeren har indtastet, altså 16.12.2003?
Ja men så skal det også være yyyy-mm-dd du bruger som dato format når du overføre til databasen. Grunden til det så virker med 16/12/03 er fodi den ikke bytter rundt på 16 og 12 da 16 ikke er en gyldig måned. Hvis du skriver 06/12/03 finden den så den 6.december eller 12.juni?
Prøv sådan her:
elseif soegefter ="dato" then
indgaetdatous = split(soegestreng ,".") indgaetdato = indgaetdatous(2) & "-" & indgaetdatous(1) & "-" & indgaetdatous(0) strSQL = "SELECT Journalnr, Lokation, Sendt_dato, Sagsbehandler, Klientnavn, Cprnummer, Status FROM Koretest k WHERE (k.Status = 'Til kundecenter') AND (k.Sendt_dato =#" & indgaetdato & "#) ORDER BY k.Journalnr DESC"
Så hjalp det på det. Nu virker det lige som det skal :)
Takker for hjælpen eagleeye
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.