Avatar billede lund_dk Praktikant
20. april 2005 - 17:40 Der er 27 kommentarer og
1 løsning

hent datoer fra uge

hej!

Jeg grave ned i min database og finde datoer for den uge vi er.
Dvs. nu er vi i uge 16, det skal jeg fortælle databasen. Så skal jeg have den til at udskrive de poster der er oprettet i denne uge. Dvs. posten fra man, tirs, ons, tors og fre,.. og er der en post der ikke findes, skal den så bare være blank

SELECT * from database


Opstilling af output:

Man: output
Tirs: output
Ons: output
Tors: output
fre: output

bemærk det KUN skal være man-fre
Avatar billede busschou Praktikant
20. april 2005 - 17:42 #1
hvilke felter har du i databasen?
Et dato felt eller uge nummer eller?
Avatar billede lund_dk Praktikant
20. april 2005 - 17:43 #2
det er alm dato felter
Avatar billede busschou Praktikant
20. april 2005 - 17:44 #3
vil du kun have for den aktuelle uge eller vil du have man generelt kan indtaste en uge?
For sidstnævnte er lidt sværere ;o)
Avatar billede lund_dk Praktikant
20. april 2005 - 17:45 #4
Det skal bare kun være den uge man er i.
Avatar billede busschou Praktikant
20. april 2005 - 17:53 #5
if Weekday(Date) < 6 then
mandag = DateAdd("d",Date,-(Weekday(Date)-1))
fredag = DateAdd("d",Date,5-Weekday(Date))
elseif Weekday(Date) = 6 then
mandag = DateAdd("d",Date,-5)
fredag = DateAdd("d",Date,-1)
elseif Weekday(Date) = 7 then
mandag = DateAdd("d",Date,-6)
fredag = DateAdd("d",Date,-2)
end if
sql = "select * from tabel where dato between mandag and fredag"
Avatar billede busschou Praktikant
20. april 2005 - 17:55 #6
hov den virker vist uanset hvad
----
mandag = DateAdd("d",Date,-(Weekday(Date)-1))
fredag = DateAdd("d",Date,5-Weekday(Date))
sql = "select * from tabel where dato between mandag and fredag"
----
Avatar billede busschou Praktikant
20. april 2005 - 18:00 #7
hmm og så er det lige at man husker at ugedage starter søndag og slutter lørdag
Så det den giver dig er søndag til torsdag
Men det må kunne løses ved at lægge en til resultatet
mandag = DateAdd("d",Date,(-(Weekday(Date)-1))+1)
fredag = DateAdd("d",Date,(5-Weekday(Date))+1)
sql = "select * from tabel where dato between mandag and fredag"
Avatar billede lund_dk Praktikant
20. april 2005 - 18:01 #8
Har prøvet at sætte det op på denne måde men får fejl

mandag = DateAdd("d",Date,-(Weekday(Date)-1))
fredag = DateAdd("d",Date,5-Weekday(Date))

Set rsOFR = Conn.Execute("SELECT * from OFR where dato between mandag and fredag")
Do until rsOfr.eof
response.write rsOFR("dato") & "<br>"
rsOfr.movenext
loop



Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][ODBC Microsoft Access-driver] Der er for få parametre. Der var ventet 2.
/intranet/ofr.asp, line 33


Linie 33 er:
Set rsOFR = Conn.Execute("SELECT * from OFR where dato between mandag and fredag")
Avatar billede busschou Praktikant
20. april 2005 - 18:04 #9
mig som er en padde
mandag = DateAdd("d",Date,(-(Weekday(Date)-1))+1)
fredag = DateAdd("d",Date,(5-Weekday(Date))+1)

Set rsOFR = Conn.Execute("SELECT * from OFR where dato between "&mandag&" and "&fredag)
Avatar billede lund_dk Praktikant
20. april 2005 - 18:07 #10
så er der ingen fejl, men der kommer heller ikke noget output overhovedet trodt jeg har poster i databasen fra flere af ugedagene.

Databasen viser formatet dd-mm-åååå
Avatar billede busschou Praktikant
20. april 2005 - 18:08 #11
prøv følgende blot for at se om det er de rigtige datoer:
---
mandag = DateAdd("d",Date,(-(Weekday(Date)-1))+1)
fredag = DateAdd("d",Date,(5-Weekday(Date))+1)
sql = "SELECT * FROM OFR WHERE dato BETWEEN "&mandag&" AND "&fredag
response.write sql
Set rsOFR = Conn.Execute(sql)
Avatar billede lund_dk Praktikant
20. april 2005 - 18:10 #12
SELECT * FROM OFR WHERE dato BETWEEN 18-04-2005 AND 22-04-2005
Avatar billede busschou Praktikant
20. april 2005 - 18:12 #13
godt så datoerne er rigtige
prøv sætte # omkring
sql = "SELECT * FROM OFR WHERE dato BETWEEN #"&mandag&"# AND #"&fredag&"#"
og hvis det ikke dur så prøv
sql = "SELECT * FROM OFR WHERE dato >= #"&mandag&"# AND dato <= #"&fredag&"#"
Avatar billede lund_dk Praktikant
20. april 2005 - 18:17 #14
Det virker :D

Liiiig en sidste ting

Jeg vil så udskrive dagen, men den er en dag foran..

mandag = DateAdd("d",Date,(-(Weekday(Date)-1))+1)
fredag = DateAdd("d",Date,(5-Weekday(Date))+1)
sql = "SELECT * FROM OFR WHERE dato BETWEEN #"&mandag&"# AND #"&fredag&"#"

response.write sql
Set rsOFR = Conn.Execute(sql)

Do until rsOfr.eof
response.write "Dag: " & WeekdayName(weekDay(rsOFR("dato"))-1) & " " & rsOFR("Dato") & "<br>"
rsOfr.movenext
loop




output:

SELECT * FROM OFR WHERE dato BETWEEN #18-04-2005# AND #22-04-2005#Dag: mandag 19-04-2005
Dag: tirsdag 20-04-2005
Dag: onsdag 21-04-2005
Avatar billede lund_dk Praktikant
20. april 2005 - 18:20 #15
og endnu et men, som jeg lagde op til i spørgsmålet

man
tirs
ons
tors
fre
skal alle vises. Altså ugedag, men er der en post i databasen som ikke findes, skal der bare være blankt udenfor ugedag
Avatar billede lund_dk Praktikant
20. april 2005 - 18:21 #16
dvs det skal egentlig sættes op på en anden måde..

Først skal den lave "kalenderen" for ugen. Derefter skal den gå ind og kigge i databasen.
Avatar billede busschou Praktikant
20. april 2005 - 18:23 #17
ja det ville nok være nemmeste for dig
Altså først skrive dagene og dernæst ugerne
Det med datoerne kan det måske hjælpe sådan her?
response.write "Dag: " & WeekdayName(weekDay(rsOFR("dato"),2)) & " " & rsOFR("Dato") & "<br>"
Avatar billede lund_dk Praktikant
20. april 2005 - 18:27 #18
men så er jeg jo tilbage til spørgsmålet, hvordan jeg får lavet "kalenderen"
Avatar billede busschou Praktikant
20. april 2005 - 18:28 #19
to sek...måske er det mig som har vildledt dig
Kan det tænkes at between kun vælger datoer imellem mandag og fredag uden mandag og fredag
prøv se om den her ik klarer tricket for dig
sql = "SELECT * FROM OFR WHERE dato >= #"&mandag&"# AND dato <= #"&fredag&"#"
Avatar billede lund_dk Praktikant
20. april 2005 - 18:31 #20
nej nej, den vælger fint mellem de datoer, men stadig er det  den forkerte måde.

Der skal først og fremmest laves en "kalender"

UGE X
------
Man :
Tir :
Ons :
Tor :
Fre :


Og her går man så ind og siger et eller andet med

if man = rsOFR("Dato") = then
man: her er en post
else
man: her er ikke en post
end if


Hvis du kan følge mig ?
Avatar billede busschou Praktikant
20. april 2005 - 18:34 #21
ja ok så
if WeekdayName(rsOFR("Dato")) = "mandag" then
    skriv ud fra database
else
    skriv noget alternavtivt
end if
rsOFR.MoveNext
if WeekdayName(rsOFR("Dato")) = "tirsdag" then
    skriv ud fra database
else
    skriv noget alternavtivt
end if
....osv
Avatar billede busschou Praktikant
20. april 2005 - 18:35 #22
og der glemte jeg så Weekday
if WeekdayName(Weekday(rsOFR("Dato"))) = "mandag" then
    skriv ud fra database
else
    skriv noget alternavtivt
end if
Avatar billede busschou Praktikant
20. april 2005 - 18:36 #23
Har du kun et indlæg pr dato i databasen?
For der skal jo også et tjek på om man er eof
if Not rsOFR.EOF AND WeekdayName(Weekday(rsOFR("Dato"))) = "mandag" then
    skriv ud fra database
else
    skriv noget alternavtivt
end if
Avatar billede lund_dk Praktikant
20. april 2005 - 18:39 #24
nej, tror desværre ikke du kan følge mig..
Så lad os prøve på ny endnu engang.

Først og fremmest skal der laves en "kalender" ud fra den uge det er.
Så i første omgang glemmer vi alt om at hente data fra databasen
Avatar billede busschou Praktikant
20. april 2005 - 18:41 #25
<table>
<tr>
  <td>Mandag</td>
  <td>indhold</td>
</tr>
<tr>
  <td>Tirsdag</td>
  <td>indhold</td>
</tr>
<tr>
  <td>Onsdag</td>
  <td>indhold</td>
</tr>
<tr>
  <td>Torsdag</td>
  <td>indhold</td>
</tr>
<tr>
  <td>Fredag</td>
  <td>indhold</td>
</tr>
</table>
Avatar billede busschou Praktikant
20. april 2005 - 18:43 #26
mandag = DateAdd("d",Date,(-(Weekday(Date)-1))+1)
%>
<table>
<tr>
  <td>Mandag <%=mandag%></td>
  <td>indhold</td>
</tr>
<tr>
  <td>Tirsdag <%=DateAdd("d",mandag,1)%></td>
  <td>indhold</td>
</tr>
<tr>
  <td>Onsdag <%=DateAdd("d",mandag,2)%></td>
  <td>indhold</td>
</tr>
<tr>
  <td>Torsdag <%=DateAdd("d",mandag,3)%></td>
  <td>indhold</td>
</tr>
<tr>
  <td>Fredag <%=DateAdd("d",mandag,4)%></td>
  <td>indhold</td>
</tr>
</table>
Avatar billede busschou Praktikant
05. maj 2005 - 18:16 #27
lund_dk >> kommet videre?.. lukketid ? :o)
Avatar billede lund_dk Praktikant
15. juni 2005 - 13:25 #28
Nej kom ikke videre.. tror ikke du helt forstod hvad det var jeg ville, men har droppet det nu, ellers tak
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