Avatar billede mini41 Nybegynder
02. maj 2003 - 07:18 Der er 9 kommentarer og
2 løsninger

Fejl ved BETWEEN

Jeg har forsøgt at bruge dette script til at hente et dato bestemt udtræk fra min db.

Scriptet virker da også nogenlunde, bortset fra det henter noget forkert :)

Se lige her:
datofra=request.form("fradato")+request.form("framaaned")+request.form("fraaar")
datotil=request.form("tildato")+request.form("tilmaaned")+request.form("tilaar")
set objRS = Conn.Execute ("SELECT sum(reparb) as arbusgmic FROM usgdatabase WHERE dato BETWEEN '"&datofra&"' AND '"&datotil&"' ")
usg=objRS("arbusgmic")
response.write (usg)


Alle dato felter i db'en har dette format: 1. januar 2003.

denne fra og til dato hentes i en select form og denne form returnerer korrekt.
Jeg har prøvet at checke med feks. fra 1. april til 10. april, hvilket giver et resultat men den henter IKKE værdien af 'reparb' for de valgte datoer, hvorfor ?
(jeg kan ikke rigtig se hvilke datoer den henter)
Avatar billede medions Nybegynder
02. maj 2003 - 08:34 #1
datofra=request.form("fradato")+request.form("framaaned")+request.form("fraaar")
datotil=request.form("tildato")+request.form("tilmaaned")+request.form("tilaar")
set objRS = Conn.Execute ("SELECT sum(reparb) as arbusgmic FROM usgdatabase WHERE dato BETWEEN #"&datofra&"# AND #"&datotil&"# ")
usg=objRS("arbusgmic")
response.write (usg)

Prøv lige sådan...

//>Rune
Avatar billede mini41 Nybegynder
02. maj 2003 - 09:08 #2
Så får jeg denne fejl:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in date in query expression 'dato BETWEEN #1. april 2003# AND #1. maj 2003#'.
Avatar billede mini41 Nybegynder
02. maj 2003 - 09:22 #3
Jeg skal lige sige at mit dato felt er et tekst felt og ikke et dato felt.
Avatar billede mm12010 Nybegynder
02. maj 2003 - 09:47 #4
du kan ikke forvente at databasen kan læse(og forstå) at det er en dato der står i tekstfeltet, derfor vil den prøve at behandle forspørgslen med alfabetisk sortering, hvilket ikke giver det ønskede resultat.

Du er nød til at ændre dine tekstfelter til datofelter, eller kan det ikke lade sig gøre.
Avatar billede mini41 Nybegynder
02. maj 2003 - 10:52 #5
Jeg forsøgte igår at rette tekst feltet til et dato felt men det kan jeg ikke uden at slette alle dato oplysninger (ved du hvordan?)
Avatar billede mm12010 Nybegynder
02. maj 2003 - 14:06 #6
åbn tabel >> tabeldesign >> klik i datatype-kollonen ud for dit datofelt - så kan du nederst i feltegenskaber vælge format
Avatar billede mini41 Nybegynder
02. maj 2003 - 15:24 #7
kan du se hvad fejlen er her ?
WHERE datoslut BETWEEN '"&("26. marts 2003") AND ("28. marts 2003")&"'")
Avatar billede mm12010 Nybegynder
02. maj 2003 - 15:39 #8
hvis det er et tekstfelt(men så kommer datoerne ud i alfabetisk rækkefølge):
WHERE datoslut BETWEEN '26. marts 2003' AND '28. marts 2003';

hvis det er datofelt:
WHERE datoslut BETWEEN #26. marts 2003# AND #28. marts 2003#;
Avatar billede mini41 Nybegynder
02. maj 2003 - 15:42 #9
Det er et tekst felt.
Men jeg får en systax error.

set objRS = Conn.Execute ("SELECT sum(reparb) as arbusgmic FROM usgdatabase WHERE datoslut BETWEEN '26. marts 2003' AND '28. marts 2003' & ")
Avatar billede eagleeye Praktikant
02. maj 2003 - 15:45 #10
Du har et & som ikke skal være i linjen:

set objRS = Conn.Execute ("SELECT sum(reparb) as arbusgmic FROM usgdatabase WHERE datoslut BETWEEN '26. marts 2003' AND '28. marts 2003'")
Avatar billede mini41 Nybegynder
02. maj 2003 - 15:57 #11
eagleeye,

Jeps så virker det, mange tak for hjælp også tak til medions samt mm12010.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester