Morten Riis skrev:
> Det er meningen at det skal være muligt for brugeren at
> redigere i en nyheds dato, ved at vælge datoen i en drop-down
> fætter.
> 1. Er det sådan man normalt ville gøre det?
Jeg ved ikke om det er specielt normalt, men det er en ganske god
ide at gøre sådan.
> 2. Hvis ja, hvad er der så galt i nedenstående kode? (fejlen
> opstår i linien: IF i = left(rs2("dato"), 2) THEN )
Der er det galt at du bruger en strengrepræsentation af din dato
til at finde dagen (og sikkert også måneden og året) med. Der
findes funktioner der gør præcis det du skal bruge - nemlig day,
month og year. De kan bruges såvel i asp (vbscript) som i Access.
Omskrevet bliver din sætning så:
If i = Day(rs2("dato")) Then
Det er i mine øjne lidt uheldig kodeteknik at lave beregningen
Day(rs2("dato")) i hvert løkkegennemløb (rs2("dato") er jo den
samme i alle 31 gennemløb af din dag-selectboks). Du bør gemme
resultatet i en variabel, så skal beregningen kun udføres én gang.
Du kan, i den løkke hvor rs2 itererer, sætte følgende variable:
dDag = Day(rs2("dato"))
dMaaned = Month(rs2("dato"))
dAar = Year(rs2("dato"))
- og så bruge disse variable når du laver de tre select-bokse.
NB: Når du skal opdatere datoen bør du ubetinget benytte funktionen
DateSerial. Den tager nemlig de tre parametre, dag, måned og år -
præcis de værdier som du får ud fra dine tre select-bokse. Og den
har den store fordel at være totalt uafhængig af datoindstillinger
på serveren og i databasen. DateSerial skal anvendes i Access, ikke
i asp, hvis du skal være sikker på uafhængigheden.
Eksempel:
strSQL = "UPDATE minTabel SET datofelt = DateSerial(" & _
wDag & ", " & wMaaned & ", " & wAar & ") " & _
" WHERE nyhedsID = " & wID
- hvor wDag, wMaaned og wAar er de værdier du modtager fra de tre
bokse.
--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på
http://usenet.dk/netikette/citatteknik.html