Avatar billede rane Nybegynder
07. november 2006 - 10:42 Der er 17 kommentarer og
2 løsninger

Dato error

Jeg har en Access tabel der indeholder et dato-felt. Der er mange rækker der har værdier som:

28-11-2006
29-11-2006
30-11-2006
01-12-2006
02-12-2006
osv.

MEN..nedenstående kode virker fint ved de første 3 af ovenstående datoer. Så snart den kommer til 1. december 2006, går den i kage. Her er koden:

dato = "01-12-2006"
SQL8 = "SELECT * FROM Sedler WHERE UgePeriode = 4 AND Dato = #" & FormatDateTime(dato) & "#"
set rs8 = conn.execute(SQL8)

response.write rs8("Beskrivelse")

Og her er den fejl jeg får:

error '80020009'
/admin/test.asp, line 20

Hva dææælen går der galt?
Avatar billede madeindk Nybegynder
07. november 2006 - 10:49 #1
dato = "01-12-2006"
SQL8 = "SELECT * FROM Sedler WHERE UgePeriode = 4 AND Dato = #" & FormatDateTime(dato) & "#"
set rs8 = conn.execute(SQL8)

if rs8.eof then
  response.write("Ingen poster")
else
  response.write rs8("Beskrivelse")
end if
Avatar billede rane Nybegynder
07. november 2006 - 10:51 #2
Har jeg prøvet...og der skriver den Ingen poster ud for 01-12-2006...SELVOM den står i tabellen. Skriver fint ud på de første 3 datoer.
Avatar billede langthjem Nybegynder
07. november 2006 - 10:54 #3
Prøv at ændre til FormatDateTime(dato,2) ... hvis ikke det virker må du have lave din egen dato-formateringsfunktion.
Avatar billede rane Nybegynder
07. november 2006 - 11:01 #4
Så får jeg en  "either BOF or EOF is true...blabla" fejl.

Udskriver jeg SQL strengen ser den sådan ud:
SELECT * FROM Sedler WHERE UgePeriode = 4 AND Dato = #01-12-2006#

dvs. umiddelbart ok....men de skide datoer...jeg hader dem...nogen der kan hjælpe?
Avatar billede langthjem Nybegynder
07. november 2006 - 11:04 #5
Bruger du stadig en "If Not rs.EOF Then" statement før du udskriver?
Avatar billede rane Nybegynder
07. november 2006 - 11:07 #6
Nææ men det er også lige meget for jeg ved at der er data i tabellen der hvor datoen er 01-12-2006. Jeg kører SQL'en i et loop nemlig, hvor den skal smide data ind i 20 <input> felter der har datoen som del af name-attribut
Avatar billede mitbrugernavn Praktikant
07. november 2006 - 11:24 #7
er dit felt i db et dato felt ??

hvis så skal du vende dag og måned om i SQL strengen

dato = "01-12-2006"
dato = month(dato) & "-" day(dato) & "-" year(dato)
SQL8 = "SELECT * FROM Sedler WHERE UgePeriode = 4 AND Dato = #" & dato & "#"
set rs8 = conn.execute(SQL8)

if rs8.eof then
  response.write("Ingen poster")
else
  response.write rs8("Beskrivelse")
end if
Avatar billede rane Nybegynder
07. november 2006 - 11:52 #8
så får jeg denne fejl:

Microsoft VBScript runtime  error '800a000d'

Type mismatch: '[string: "11-27-2006"]'
Avatar billede langthjem Nybegynder
07. november 2006 - 11:54 #9
Hvis du endelig skal vende dato strengen om skal den vendes til:
dato = year(dato) & "-" & month(dato) & "-" & day(dato)
Avatar billede rane Nybegynder
07. november 2006 - 12:00 #10
Samme mismatch fejltype...det var da ufatteligt. :(

Kan det være fordi jeg bruger det i et loop og plusser med i (1) ala:

AND (Dato = #" & dato+i & "#)"    ??

Hvis ja, hvodden får jeg den ellers til at lægge én dag til i et loop?
Avatar billede mitbrugernavn Praktikant
07. november 2006 - 12:06 #11
for det første skal strengen vende således month(dato) & "-" day(dato) & "-" year(dato)

dernæst kan man ikke bare lægge en dag til som du gør - kommer lige med en til dig
Avatar billede langthjem Nybegynder
07. november 2006 - 12:10 #12
Prøv at bruge:
AND (Dato = #" & DateAdd("d",i,dato) & "#)"
Avatar billede mitbrugernavn Praktikant
07. november 2006 - 12:12 #13
'et eksempel
<%
dato = "1-12-2006"

for i = 0 to 6 ' her løber den en uge frem
dato = DateAdd("d", 1, dato) 'her lægger den 1 dag til din oprindelige dato
new_dato = month(dato) & "-" & day(dato) & "-" & year(dato) 'her vender den datoen til din sqlstreng
response.write new_dato & "<br>" 'og her kan du så hente fra db
next
%>
Avatar billede rane Nybegynder
07. november 2006 - 12:18 #14
mitbrugernavn, jaaaaa præcis den måde at gøre det på, lader til at virke :D
Avatar billede mitbrugernavn Praktikant
07. november 2006 - 12:42 #15
det er noget tricky noget det med datoer ;-)))
Avatar billede rane Nybegynder
07. november 2006 - 13:22 #16
det må du sgu nok sige.  tak til alle for jeres forslag - mitbrugernavn får points da lige præcis hans kode virker perfekt :)
Avatar billede mitbrugernavn Praktikant
07. november 2006 - 13:49 #17
"mitbrugernavn får points da lige præcis hans????????? ;-))))eller hendes kode virker perfekt :)"
Avatar billede rane Nybegynder
07. november 2006 - 14:16 #18
ups...en mindre brøler, men de fleste på eksperten er nok mænd, så håber det går :)
Avatar billede mitbrugernavn Praktikant
07. november 2006 - 14:24 #19
;-))))  takker for point
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