/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Asp skal kun retunerer dagens begivenhed
Fra : Henry


Dato : 07-03-04 17:27

Hej alle

Jeg vil lige starte med at sige tak for hjælp jeg har modtaget de sidste
dage, men i ved når man rækker fanden en lillefinger,
så jeg har lige et lille spørsmål mere.

Jeg vil gerne have hentet dagens begivenheder med dette script
det vil sige at posten dag kun skal hente "begivenheder" fra den aktuelle
dag. og returner til et asp side

Herefter så vil jeg gerne have resultatet fra asp sat ind i en tabel på en
alm. html side

Jeg har en side med frames og der vil jeg gerne have en lille boks i en
tabel der viser dagens aktivitet fra databasen.

Men jeg mangler lidt hjælp til koden herunder således den kun tager dagen i
dag. den jeg har her viser alle begivenheder i posten "begivenheder".
Så jeg skal vel bruge noget WHERE og =NOW men jeg kan ikke få det sat rigtig
ind.
Og så er jeg lidt i tvivl om man kan bruge min fremgangsmåde med først at
trække det ud i en asp side og herefter ligge det ind i
en alm. html side i en tabel.


Jeg har undladt DSN forbindelsen her.

<%

strSQL = "SELECT dag, maaned, beskrivelse FROM events Where eventtype = 1

Set rs = Conn.Execute(strSQL)
Set rs = Conn.Execute(strSQL)

' Gennemløb Recordset (rs) med en løkke
Do

Response.Write rs("beskrivelse")&"<br>"

rs.MoveNext

Loop While Not rs.EOF

Conn.Close
Set Conn = Nothing
%>
</body>
</html>

--
Med venlig hilsen Henry




 
 
Jens Gyldenkærne Cla~ (07-03-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 07-03-04 21:48

Henry skrev:

> Men jeg mangler lidt hjælp til koden herunder således den kun
> tager dagen i dag.

Du skal tilrette sql-sætningen (som du selv er inde på).

> strSQL = "SELECT dag, maaned, beskrivelse FROM events Where
> eventtype = 1

strSQL = "SELECT .... FROM events WHERE eventtype = 1 AND Day(Now)
= dag AND Month(Now) = maaned AND Year(Now) = aar"

(skal stå på én linje)

Hvis du har et samlet datofelt, kan du i stedet skrive:

.... WHERE DateDiff('d', Now, datofelt) = 0

Bemærk at du _ikke_ bare kan bruge

.... WHERE DatoFelt = Now

(fordi tidspunktet også er med).


> Set rs = Conn.Execute(strSQL)
> Set rs = Conn.Execute(strSQL)

Hvorfor har du to gange den samme linje?


> ' Gennemløb Recordset (rs) med en løkke
> Do

> Loop While Not rs.EOF

Overvej at bruge "Do While Not rs.EOF .... Loop" i stedet. Ved at
flytte betingelsen op i første linje, undgår du fejl hvis sql-
sætningen ikke finder nogen poster.
--
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

Henry (08-03-2004)
Kommentar
Fra : Henry


Dato : 08-03-04 00:21

Jens Gyldenkærne Clausen wrote:
> Henry skrev:
>
>> Men jeg mangler lidt hjælp til koden herunder således den kun
>> tager dagen i dag.
>
> Du skal tilrette sql-sætningen (som du selv er inde på).

> strSQL = "SELECT .... FROM events WHERE eventtype = 1 AND Day(Now)
> = dag AND Month(Now) = maaned AND Year(Now) = aar"

1000 x tak det virker fint

> ' Gennemløb Recordset (rs) med en løkke
> Do

> Loop While Not rs.EOF

Overvej at bruge "Do While Not rs.EOF .... Loop" i stedet. Ved at
flytte betingelsen op i første linje, undgår du fejl hvis sql-
sætningen ikke finder nogen poster.


Ja den melder ganske rigtig fejl hvis der ikke er poster d.d
Har jeg forstået det ret jeg skriver

Do While Not rs.EOF .... Loop

og fjerner

> Do

> Loop While Not rs.EOF

Så der kommer til at stå

<%
strSQL = "SELECT beskrivelse FROM events WHERE eventtype = 1 AND Day(Now)=
dag AND Month(Now) = maaned AND Year(Now) = aar"

Set rs = Conn.Execute(strSQL)

Do While Not rs.EOF .... Loop
%>
<tr>

<td><% =rs("beskrivelse") %></td>
<tr>
<%
rs.MoveNext

%>

så får jeg fejl

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03F2)
Id var ventet
/4AKTIVITETSKALENDER/DATABASE/UDSKRIV_DAGENS_AKTIVITET.ASP, line 29, column
21
Do While Not rs.EOF .... Loop
--------------------^

Med venlig Hilsen

Henry










Chrisser (08-03-2004)
Kommentar
Fra : Chrisser


Dato : 08-03-04 08:30

Henry wrote:
> Ja den melder ganske rigtig fejl hvis der ikke er poster d.d
> Har jeg forstået det ret jeg skriver
>
> Do While Not rs.EOF .... Loop
>
> og fjerner
>
>> Do
>
>> Loop While Not rs.EOF

Nej, loop skal på til sidst:

Do while not rs.EOF
' kode
rs.MoveNext
Loop

Mvh
Chrisser



Henry (08-03-2004)
Kommentar
Fra : Henry


Dato : 08-03-04 10:17

Chrisser wrote:

> Nej, loop skal på til sidst:
>
> Do while not rs.EOF
> ' kode
> rs.MoveNext
> Loop
>
> Mvh
> Chrisser

Mange tak for svar- jeg får følgende fejl når jeg har felter med
begivenheder som er dags dato,
og jeg har tilføjet din kode.

Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03FB)
'Loop' var ventet
/4AKTIVITETSKALENDER/DATABASE/UDSKRIV_DAGENS_AKTIVITET.ASP, line 39

koden ser så sådan med tilføjelese af din rettelse

<%


Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" &
Server.MapPath("/4aktivitetskalender/database/kalender.mdb")
Conn.Open DSN

strSQL = "SELECT beskrivelse FROM events WHERE eventtype = 1 AND Day(Now)=
dag AND Month(Now) = maaned AND Year(Now) = aar"


Set rs = Conn.Execute(strSQL)

Do
%>
<tr>

<td><% =rs("beskrivelse") %></td>
<tr>
<%
Do while not rs.EOF
' kode
rs.MoveNext
Loop

%>

Hvis jeg fjerner den øverste DO komando viser den rigtig dags dato,
men melder fejl hvis der ikke er poster dags dato.

Hvad mon jeg gør galt skal jeg mon have de 2x do med ??

Med venlig hilsen
Henry




Jens Gyldenkærne Cla~ (08-03-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 08-03-04 11:06

Henry skrev:

> Do
> %>
> <tr>
>
> <td><% =rs("beskrivelse") %></td>
> <tr>
> <%
> Do while not rs.EOF
> ' kode
> rs.MoveNext
> Loop

Til hver "Do" skal der være en "Loop" længere nede. Du har altså et
"Do" for meget (eller et Loop for lidt - men det er ikke
tilfældet).


> Hvis jeg fjerner den øverste DO komando viser den rigtig dags
> dato, men melder fejl hvis der ikke er poster dags dato.

Du skal fjerne nr. 2 "Do" - men til gengæld flytte betingelsen
"While Not rs.EOF" op til "Do" nr. 1.

<% Do While Not rs.EOF %>
<tr><td><%= rs("beskrivelse") %></td></tr>
<%
   rs.movenext
   Loop
%>
--
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

Henry (08-03-2004)
Kommentar
Fra : Henry


Dato : 08-03-04 18:42

Jens Gyldenkærne Clausen wrote:
> Henry skrev:
>>> dato, men melder fejl hvis der ikke er poster dags dato.
>
> Du skal fjerne nr. 2 "Do" - men til gengæld flytte betingelsen
> "While Not rs.EOF" op til "Do" nr. 1.
>


Ja og tusinde gange mange tak - men jeg kan bare ikke få det til at virke

så jeg skal nok have det skåret ud i pap.

Koden her her virker, bare ikke ved dags dato med tom felt i db.

Kan jeg få dig til at flette koden ind i det så jeg kan se hvad jeg gør galt




<%


Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" &
Server.MapPath("/aktivitetskalender/database/kalender.mdb")
Conn.Open DSN

strSQL = "SELECT beskrivelse FROM events WHERE eventtype = 1 AND Day(Now)=
dag AND Month(Now) = maaned AND Year(Now) = aar"


Set rs = Conn.Execute(strSQL)

Do
%>
<tr>
</table></b>
<table border="0" width="15%" id="table1">
<tr>
<td><font size="2">Dagens aktiviteter</font></font></td>
</tr>
<tr>
<td align="left"><font size="1"><%=rs("beskrivelse")%></tr>
</table>
<body topmargin="30" leftmargin="30">
<b>
<table border"1">
<tr>

<tr>
<%
rs.MoveNext

Loop While Not rs.EOF
%>

på forhånd tak

Henry





Jens Gyldenkærne Cla~ (08-03-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 08-03-04 22:16

Henry skrev:

> Koden her her virker, bare ikke ved dags dato med tom felt i
> db.

Som skrevet før er problemet at du skriver kriteriet (While not
rs.EOF) til sidst i stedet for først i løkken. Den kode du har
gengivet herunder er temmelig problematisk på grund af en række
fejl i html-koden - så jeg vil foreslå dig at begynde forfra med
løkke-koden og så få skrevet noget ordentlig html-kode i løkken.
Men hvis du har mod på at arbejde videre fra din nuværende kode,
har jeg kommenteret de største problemer herunder. Bemærk at det
alene er første og sidste kommentar der betyder noget for dit asp-
problem - resten drejer sig om den html-kode du får ud af asp-
siden.

> Do

Ret ovenstående linje til:

   Do While Not rs.EOF

> %>
> <tr>
> </table></b>

Av - du har en masse rod i dine html-koder. Det har ikke betydning
for hvordan din asp-kode virker, men det får betydning for hvordan
siden vises. Lige nu lader du visningen af enhver post starte med
at åbne en tabelrække (tr) og derefter lukke en hel tabel (table)
samt en kode for fed (b).

> <table border="0" width="15%" id="table1">

Her starter du en ny tabel (inde i løkken). Det er ikke nødvendigt
til det du skal lave.

> <tr>
> <td><font size="2">Dagens aktiviteter</font></font></td>

Du har 1 font-åbningskode, men 2 font-lukkekoder. Der skal være
balance (der er i øvrigt slet ikke grund til at bruge <font> -
skriftinformationer styres langt bedre med css)


> <tr>
> <td align="left"><font size="1"><%=rs("beskrivelse")%></tr>

Her har du glemt at lukke td-elementet. Det er ikke strengt
påkrævet i standard html, men tabeller bliver særdeles svære at
overskue hvis man ikke benytter lukke-koder til tabelceller (</td>)

> <body topmargin="30" leftmargin="30">

Hov - <body>-elementet skal ikke stå midt på en side, og slet ikke
midt i en løkke der kan køre flere gange. Slet linjen helt.

> <table border"1">
> <tr>
>
> <tr>

Hvad skal ovenstående kode?

> <%
> rs.MoveNext
>
> Loop While Not rs.EOF
> %>

Tilbage til asp-problemet. Ovenstående linje (med Loop) skal rettes
så der kun står Loop.
--
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

Henry (08-03-2004)
Kommentar
Fra : Henry


Dato : 08-03-04 22:43

Jens Gyldenkærne Clausen wrote:
> Henry skrev:

> Som skrevet før er problemet at du skriver kriteriet (While not
> rs.EOF) til sidst i stedet for først i løkken. Den kode du har
> gengivet herunder er temmelig problematisk på grund af en række
> fejl i html-koden - så jeg vil foreslå dig at begynde forfra med
> løkke-koden og så få skrevet noget ordentlig html-kode i løkken.

Endnu en gang mange tak for dine gode råd, og nu lykkedes det.
Nu vil jeg så følge dit råd og begynde forfra med html koden,
men det er en stor hjælp at have noget der virker selv om det er rodet.

Mvh
Henry





Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408929
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste