"Jørn Andersen" <jorn@jorna.dk> skrev i en meddelelse
news:1h68j3trjugv2jebhkrkbsmraf50j5u12t@4ax.com...
> On Fri, 9 Nov 2007 07:18:48 +0100, "Henning Smed" <henning snabela
> smeds dot dk> wrote:
>
>>God morgen.
>>
>>Jeg henter en dato fra en MS SQL database og finder ugedagen med
>>'weekday',
>>Når datoen indsættes i databasen opdeles den i år, måned og dag med
>>'DateSerial'.
>
> Du mener vel, at dag, måned, år *samles* til en dato-værdi, inden den
> indsættes - ?
>
Ja selvføgelig - jeg må lære at skrive det jeg mener
.
>>Jeg finder ugedagen med :
>>
>><%DO WHILE NOT rs.EOF
>> WeekdayNumber = (Weekday((rs("PlayDate"))))
>> Select Case WeekdayNumber
>> Case 1
>> Ugedag="Søndag"
>> Case 2
>> Ugedag="Mandag"................
>>
>>Bør jeg igen opdele datoen når den hentes fra databasen, før jeg finder
>>ugedag nummeret med (Weekday(dato)) ?
>
> Nej, det får du kun problemer ud af. Den værdi, du henter med
> rs(PlayDate), er en dato-værdi, som det skal være.
>
OK tak.
>>Er det muligt at placere 'Select Case' schriptet uden for (før) loopen 'DO
>>WHILE...' ?
>
> Nej - for din WeekdayNumber skifter jo for hver record.
>
> Men du kan simplificere det lidt ved at bruge et array i stedet:
>
> arrUgeDag =
> Array(,"Søndag","Mandag","Tirsdag","Onsdag","Torsdag","Fredag","Lørdag",Søndag")
>
> Denne definiton sætter du inden loopen.
> Bemærk kommaet før "Søndag" - det gør, at "Søndag" er nr. 1, da arrays
> er nul-nummererede.
>
> Du erstatter så din Select Case-blok med:
> Ugedag = arrUgeDag(WeekdayNumber)
> - altså inde i loopen.
>
> Alt i alt sparer det en del kodelinier. Samme teknik kan bruger til
> månedsnavne.
Mange tak Jørn,
Jeg vil bruge array i stedet for select case, det vil gøre koden mere
overskuelig og formodentlig hurtigere.
God weekend
Henning