06. november 2004 - 22:40
Der er
6 kommentarer og 1 løsning
dato problem i sql forespørgsel
Hvorfor virker denne sql streng ikke? StrSQL = "SELECT SKonsulenter.Navn, SMødetyper.Beskrivelse, Count(Skandidathistorik.HistorikId) AS Aktiviteter" StrSQL = StrSQL & " FROM SMødetyper INNER JOIN (SKonsulenter INNER JOIN Skandidathistorik ON SKonsulenter.KonsulentId = Skandidathistorik.Konsulent) ON SMødetyper.MødeId = Skandidathistorik.Type" StrSQL = StrSQL & " WHERE ((Skandidathistorik.Dato)>=" & cdate(Request.form("fdato")) & " And (Skandidathistorik.Dato)<=" & cdate(Request.form("tdato")) & ")" StrSQL = StrSQL & " GROUP BY SKonsulenter.Navn, SMødetyper.Beskrivelse" StrSQL = StrSQL & " ORDER BY SKonsulenter.Navn, SMødetyper.Beskrivelse" databasen er access og Skandidathistorik.Dato er short date format
Annonceindlæg fra Computerworld
06. november 2004 - 22:43
#1
jeg skal selvfølgelig sige, at det er dato delen som spøger. Med den nuværende sql vises ingenting, hvis jeg erstatter request.form værdierne med konstanter f.eks #06-11-2004# så vises poster, men ikke de rigtige!
Slettet bruger
06. november 2004 - 22:46
#2
Som du jo egentlig også selv skriver så skal der # om datoer, eks ((Skandidathistorik.Dato)>=#" & cdate(Request.form("fdato")) & "# And
06. november 2004 - 22:49
#3
Bertie: Det har jeg prøvet! StrSQL = StrSQL & " WHERE ((Skandidathistorik.Dato)>=#" & cdate(Request.form("fdato")) & "# And (Skandidathistorik.Dato)<=#" & cdate(Request.form("tdato")) & "#)"
07. november 2004 - 00:06
#4
er det en access database ? for når du validerer fra en form så skulle jeg mene at du bliver nødt til at formatere dato feltet først således: nydato = Trim(Request.form("soegeord")) nydato = Year(strdato) & "-" & Month(strdato) & "-" & Day(strdato) og så smider du det ind i din SQL
07. november 2004 - 00:07
#5
og så skal jeg selvfølgelig lige tage højde for skrivefejl: strdato = Trim(Request.form("fdato")) nydato = Year(strdato) & "-" & Month(strdato) & "-" & Day(strdato) og så skal du bruge nydato variablen i din sql
07. november 2004 - 09:08
#6
Tak phineas phreak - dét var løsningen! Jeg har lavet en funktion: Function Splitdato(d) Splitdato = Year(d) & "-" & Month(d) & "-" & Day(d) End function og ændret sql strengen således: StrSQL = "SELECT SKonsulenter.Navn, SMødetyper.Beskrivelse, Count(Skandidathistorik.HistorikId) AS Aktiviteter" StrSQL = StrSQL & " FROM SMødetyper INNER JOIN (SKonsulenter INNER JOIN Skandidathistorik ON SKonsulenter.KonsulentId = Skandidathistorik.Konsulent) ON SMødetyper.MødeId = Skandidathistorik.Type" StrSQL = StrSQL & " WHERE ((Skandidathistorik.Dato)>=#" & splitdato(trim(Request.form("fdato"))) & "# And (Skandidathistorik.Dato)<=#" & splitdato(trim(Request.form("tdato"))) & "#)" StrSQL = StrSQL & " GROUP BY SKonsulenter.Navn, SMødetyper.Beskrivelse" StrSQL = StrSQL & " ORDER BY SKonsulenter.Navn, SMødetyper.Beskrivelse" Send et svar. Tak for hlælpen!
07. november 2004 - 13:10
#7
det gør jeg så
Kurser inden for grundlæggende programmering