Avatar billede simonb79 Nybegynder
04. juli 2002 - 15:56 Der er 19 kommentarer og
1 løsning

SELECT....datoen > '" & dato & "' " virker ikke!!!

Hej
Jeg vil trække alt for de sidste 14 dage ud af en database. Jeg har sat feltet i Access databasen til "Dato og klokkeslet" og har valgt kort datoformat (19-06-2002), men jeg får bare af vide at: "Datatyperne stemmer ikke overens i kriterieudtrykket".
Databasen vil altså ikke acceptere at jeg søger på dato med en streng, hvordan løser jeg dette problem?

dato = (date-14)
SELECT * FROM mindatabase WHERE datoen > '" & dato & "'"

Hvordan erklærer jeg evt. en streng som en dato, så jeg kan søge på den i access eller an ande DB???
Avatar billede simonb79 Nybegynder
04. juli 2002 - 15:59 #1
Jeg har lavet en midlertidig løsning med en løkke uden om min forespørgsel hvor jeg siger

SELECT....datoen = '" & (date-tæller) & "' "

men dette sløver siden meget!
Avatar billede tmceu Praktikant
04. juli 2002 - 15:59 #2
Dette SQL statement virker 100% på Access, dvs. uden variabler fra ASP

SELECT * FROM Tabel WHERE Datoen >= Dateadd('d', -14, date())
Avatar billede eagleeye Praktikant
04. juli 2002 - 19:17 #3
Skal der ikke # omkring selve datoen når det er Access:
"SELECT * FROM Tabel WHERE Datoen >= #Dateadd('d', -14, date())#"


Hvis du vil udregne dato'en i ASP koden, og overføre vi SQL så benyt formatet yyyy-mm-dd. Det giver som regl ikke problemmer:

datoStr = dateAdd("d",-14,Date)
datoStr = Year(datoStr) & "-" & Month(datoStr) & "-" & Day(datoStr)
strSQL = "SELECT * FROM Tabel WHERE datoen > #" & datoStr & "#"
Avatar billede tmceu Praktikant
04. juli 2002 - 19:33 #4
eagleeye >> det er ikke nødvendigt med de indbyggede funktioner. Man bruger jo eks. heller ikke # om SELECT * FROM Tabel WHERE Dato = Date()

Det virker i hvert tilfælde hos mig :-)
Avatar billede simonb79 Nybegynder
04. juli 2002 - 21:02 #5
Det ser ud til at virke, men længere nede i scriptet, forespørger jeg på datoen med en dato jeg har i en tabel:

SELECT... datoen = '" & datotabeludtræk(tæller) & "' "

Har prøvet med # udenom, hvordan løser jeg dette?
Avatar billede simonb79 Nybegynder
04. juli 2002 - 21:09 #6
Fejlen er :
Datatyperne stemmer ikke overens i kriterieudtrykket
Avatar billede eagleeye Praktikant
04. juli 2002 - 21:20 #7
Via ASP skal du bruge ## omkring dato de min kommentar tidligere idag.

strSQL = "SELECT * FROM Tabel WHERE datoen = #" & datotabeludtræk(tæller)& "#"
Avatar billede simonb79 Nybegynder
04. juli 2002 - 21:42 #8
Det prøvede jeg også men så lave den stadig fejl!!!
Det var en fejl 40 :) jeg havde et tomt array index :) sorry
Nu viker det.... nogen lunde :)
mange tak for hjælpen
Avatar billede eagleeye Praktikant
04. juli 2002 - 21:44 #9
hehe ok :)
Avatar billede simonb79 Nybegynder
04. juli 2002 - 22:24 #10
Sorry jeg forstyrre igen håber det er ok ;)
Men det drille en smule lige nu!!

Jeg har en DB men datoer fra 19-06-2002 til og med 03-07-2002 men når jeg forespørger følgende kommer 01-07-2002 og op til og med 03-07-2002 ikke med i mit rs!!!

strSQL = "SELECT * FROM Tabel WHERE datoen = #" & datotabeludtræk(tæller)& "#"
Avatar billede simonb79 Nybegynder
04. juli 2002 - 22:25 #11
datotabeludtræk array'et indeholder datoer fra 19-06-2002 til og med 04-07-2002!!
Avatar billede tmceu Praktikant
04. juli 2002 - 22:34 #12
Jeg kan ikke lige gennemskue hvordan du anvender dit array, men du burde overveje enten at bruge BETWEEN for et datointerval eller IN for en liste af datoer.
Avatar billede simonb79 Nybegynder
04. juli 2002 - 22:45 #13
Jeg er desværre sikker på det ikke er array'et den fejler ved! Da jeg har testet dette!!! Den vil ikke finde:

dato = #01-07-2002#
dato = #02-07-2002#
dato = #03-07-2002#
????? sygt
Avatar billede eagleeye Praktikant
04. juli 2002 - 22:54 #14
Prøv med denne med yyyy-mm-dd som dato format.:

datoStr = Year(datotabeludtræk(tæller)) & "-" & Month(datotabeludtræk(tæller)) & "-" & Day(datotabeludtræk(tæller))
strSQL = "SELECT * FROM Tabel WHERE datoen = #" & datoStr & "#"
Avatar billede simonb79 Nybegynder
04. juli 2002 - 22:56 #15
nu har jeg prøvet med ren SQL at forespørge på #01-07-2002# uden nogen indblanding af strenge eller noget!!!! intet resultat!!! Ændre jeg datoen til #24-06-2002# får jeg resultat!!! Så kan det sku!"¤#!¤%!# ikke være mig!
Avatar billede tmceu Praktikant
04. juli 2002 - 23:00 #16
Prøv lige for sjov med #07-01-2002#
Avatar billede simonb79 Nybegynder
04. juli 2002 - 23:02 #17
Så kører det :D super!!!
Inden jeg slutter for i aften, skal du lige have et skulder-klap. Folk som dig gør det rart at være til!!! Du blir helt sikkert nævnt i min aften bøn :)! Tusind tak for hjælpen og for din udholdenhed! :)
Avatar billede eagleeye Praktikant
04. juli 2002 - 23:03 #18
Hvad hvis du skriver:?
strSQL = "SELECT * FROM Tabel WHERE datoen = #2002-07-01#"
Avatar billede tmceu Praktikant
04. juli 2002 - 23:07 #19
Nu håber jeg det sidste var henvendt til mig, for ellers er denne kommentar en smule pinlig :-)

Det var så lidt, men nu skal du ikke glemme eagleeye. Han er mindst lige så udholdende - og læg mærke til at han kun har smidt kommentarer, så han har ikke "jagtet" point. Jeg deler gerne skulderklappet med ham :-)
Avatar billede simonb79 Nybegynder
04. juli 2002 - 23:15 #20
Den var til jer begge!! men jeg gik ud fra i ikke sad ved siden af hinanden og for at rette den mere personligt skrev jeg dig :) Så mange tak begge 2!!! Og alle de andre, ingen nævnt, ingen glemt ;D mange tak!!
He he
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