Avatar billede sorenmt84 Juniormester
11. juni 2001 - 10:42 Der er 23 kommentarer og
2 løsninger

Tæl antal poster, find en fejl og lidt til

Jeg har følgende kode, som bruges til en kalender. Denne kode viser detaljer for hver enkelt dag, altså f.eks. oplysninger om den 11 juni 2001. Dette virker også fint, men nogle dage sker der mere en en ting, derfor vil jer gerne kunne få den til at tælle hvor mange ting der sker - altså hvor mange poster den viser på siden. Men hvordan?
------------------------------------------------------
<%
DBQ=Server.MapPath(\"spejder.mdb\")
Set oConn = createObject(\"ADODB.Connection\")
oConn.open \"driver={Microsoft Access Driver (*.mdb)};dbq=\"&DBQ

If Request.QueryString(\"dato\")<>\"\" Then
dato = Request.QueryString(\"dato\")
Set foddagbarn=oConn.Execute(\"Select * from kalender where dag=\"&day(dato)&\" and mdr=\"&month(dato))
%>
<td valign=\"top\">
<span class=\"uoverskrift\"><IMG SRC=\"images/punkt.gif\" >&nbsp;<a class=\"uoverskrift\" href=\"default.asp?\"> Forsiden</a> <IMG SRC=\"images/punkt.gif\"> <a class=\"uoverskrift\" href=\"default.asp?side=kalender\">Kalender</a> - Info: <%=foddagbarn.Fields(\"dato\")%></span><br><br>
<%
If Not foddagbarn.EoF Then
%>
<%
    Do while Not foddagbarn.EoF
%>
<center>
<TABLE BORDER=\"0\" CELLSPACING=\"0\" class=\"tabel4\" width=\"600\">
<TR>
    <TD class=\"tabel1\" colspan=\"2\" width=\"600\"><span class=\"overskrift\">Information -  <%=foddagbarn.Fields(\"overskrift\")%></span></TD>
</tr>
<TR>
<TD><span class=\"normal\"><IMG SRC=\"images/pil.gif\" BORDER=\"0\" WIDTH=\"5\" HEIGHT=\"10\" ALIGN=\"bottom\" ALT=\"\">&nbsp;<b>Titel:</b>&nbsp;<%=foddagbarn.Fields(\"overskrift\")%></span></TD></tr>
<tr><TD class=\"tabel1\" width=\"1\"></TD></tr>
<TD><span class=\"normal\"><IMG SRC=\"images/pil.gif\" BORDER=\"0\" WIDTH=\"5\" HEIGHT=\"10\" ALIGN=\"bottom\" ALT=\"\">&nbsp;<b>Gren(e):</b>&nbsp;<%=foddagbarn.Fields(\"gren\")%></span></TD></tr>
<tr><TD class=\"tabel1\" width=\"1\"></TD></tr>
<%
maaned = foddagbarn.Fields(\"mdr\")
if maaned = \"1\" then vis = \"januar\"
if maaned = \"2\" then vis = \"febuar\"
if maaned = \"3\" then vis = \"marts\"
if maaned = \"4\" then vis = \"april\"
if maaned = \"5\" then vis = \"maj\"
if maaned = \"6\" then vis = \"juni\"
if maaned = \"7\" then vis = \"juli\"
if maaned = \"8\" then vis = \"august\"
if maaned = \"9\" then vis = \"september\"
if maaned = \"10\" then vis = \"oktober\"
if maaned = \"11\" then vis = \"november\"
if maaned = \"12\" then vis = \"december\"
%>
<TD><span class=\"normal\"><IMG SRC=\"images/pil.gif\" BORDER=\"0\" WIDTH=\"5\" HEIGHT=\"10\" ALIGN=\"bottom\" ALT=\"\">&nbsp;<b>Dato:</b>&nbsp;<%=foddagbarn.Fields(\"dag\")%>. <%= vis %> - <%=foddagbarn.Fields(\"aar\")%></span></TD></tr>
<tr><TD class=\"tabel1\" width=\"1\"></TD></tr>
<TD><span class=\"normal\"><IMG SRC=\"images/pil.gif\" BORDER=\"0\" WIDTH=\"5\" HEIGHT=\"10\" ALIGN=\"bottom\" ALT=\"\">&nbsp;<b>Beskrivelse:</b><br><%=Replace(foddagbarn.Fields(\"beskrivelse\"), vbCrLf, \"<BR>\")%>
</span></TD></tr>
<tr><TD class=\"tabel1\" width=\"1\"></TD></tr>
<TD><span class=\"normal\"><IMG SRC=\"images/pil.gif\" BORDER=\"0\" WIDTH=\"5\" HEIGHT=\"10\" ALIGN=\"bottom\" ALT=\"\">&nbsp;<b>Tilføjet af:&nbsp;</b><%=foddagbarn.Fields(\"tilfojet_af\")%></span></TD></tr>
<tr><TD class=\"tabel1\" width=\"1\"></TD></tr>
<TD><span class=\"normal\"><IMG SRC=\"images/pil.gif\" BORDER=\"0\" WIDTH=\"5\" HEIGHT=\"10\" ALIGN=\"bottom\" ALT=\"\">&nbsp;<b>Sidst opdateret:&nbsp;</b><%=foddagbarn.Fields(\"tilfojet_den\")%></span></TD></tr>
<tr><TD class=\"tabel1\" width=\"1\"></TD><p><br></tr>
<%
foddagbarn.MoveNext
Loop
%>
</TABLE>
</center><p><br>
<center>
<TABLE BORDER=\"1\" bordercolor=\"#3C9751\" CELLSPACING=\"0\" class=\"tabel4\">
<TR>
<TD class=\"tabel1\" colspan=\"6\" width=\"600\" bgcolor=\"#3C9751\"><span class=\"overskrift\">Andre måneder</span></TD>
</tr>
<TR>
<td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-01-2001\">Januar</a></span></center></td>
<td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-02-2001\">Febuar</span></center></td>
<td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-03-2001\">Marts</span></center></td>
<td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-04-2001\">April</span></center></td>
<td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-05-2001\">Maj</span></center></td>
<td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-06-2001\">Juni</span></center></td></tr>
<TR>
<td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-07-2001\">Juli</span></center></td>
<td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-08-2001\">August</span></center></td>
<td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-09-2001\">September</span></center></td>
<td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-10-2001\">Oktober</span></center></td>
<td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-11-2001\">November</span></center></td>
<td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-12-2001\">December</span></center></td></tr>
</table></center><p><br>
<% End If %>
<% End If %>
------------------------------------------------------
Hvis man trykker på en dato, hvor der ikke er nogen aktiviteter, kommer den med følgende fejl:
Fejltype:
ADODB.Field (0x80020009)
Enten er BOF eller EOF sand, eller den aktuelle post er blevet slettet. Den anmodede handling kræver en aktuel post.
/troldhoej/default.asp


Browsertype:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

Side:
GET /troldhoej/default.asp

Klokkeslæt:
11. juni 2001, 10:42:35


Yderligere oplysninger:
Microsoft Support
Hvordan for jeg den til at skrive: Ingen aktiviteter denne dag! - eller noget i den stil i stedet?
------------------------------------------------------
For begge spørgsmål gælder det, at jeg geren vil have det detaljeret beskrevet!
Avatar billede spectual Nybegynder
11. juni 2001 - 10:44 #1
puha hvor er det rodet! :)

Problemet ligger i, at du ikke har nogen poster i din database hvor den dato, men du prøver alligevel at hente en. Det giver den fejl.
Avatar billede spectual Nybegynder
11. juni 2001 - 10:47 #2
Der 2 løsninger:

Enten:

If Not ((foddagbarn.EoF) or (foddagbarn.bof)) Then

Eller:

if foddagbarn.recordcount>0 then

Den sidste kræver:

sqlstr = \"Select * from kalender where dag=\"&day(dato)&\" and mdr=\"&month(dato)
Set foddagbarn = Server.CreateObject (\"ADODB.RecordSet\")
foddagbarn.open sqlstr, oConn, 1, 1


Avatar billede spectual Nybegynder
11. juni 2001 - 10:48 #3
Spørgsmål? :)
Avatar billede cape Nybegynder
11. juni 2001 - 10:48 #4
Du kan bruge RECORDCOUNT.

Hvis den er nul - så udskriv Ingen aktiviteter denne dag! eller det andet !!
Avatar billede cape Nybegynder
11. juni 2001 - 10:48 #5
ok - Spectual - du kom først :)
damn :)
Avatar billede spectual Nybegynder
11. juni 2001 - 10:48 #6
Den sidste metode er den mest korrekte (og mindst kompatitble) - den første er den nemmeste.
Avatar billede spectual Nybegynder
11. juni 2001 - 10:49 #7
:)
Avatar billede spectual Nybegynder
11. juni 2001 - 10:52 #8
Hvis du *vil* tælle antal aktiviteter, skal du bruge metode 1.
Avatar billede spectual Nybegynder
11. juni 2001 - 10:52 #9
metode 2 selvfølgelig, sorry.
Avatar billede sorenmt84 Juniormester
11. juni 2001 - 13:05 #10
Kan jeg ikke få dig til at skrive det ind i den kode som jeg har vedlagt...
Avatar billede spectual Nybegynder
11. juni 2001 - 13:09 #11
Joh... øjeblik
Avatar billede spectual Nybegynder
11. juni 2001 - 13:23 #12
Jeg har tilladt mig at sætte det lidt bedre op. Jeg har også sat et par <tr> tags ind hvor de manglede. Jeg kan jo ikke teste det, så jeg håber du selv kan rette de opsætnings fejl der end måtte være.

<%
DBQ=Server.MapPath(\"spejder.mdb\")
Set oConn = createObject(\"ADODB.Connection\")
oConn.open \"driver={Microsoft Access Driver (*.mdb)};dbq=\"&DBQ

If isempty (Request (\"dato\"))=false Then

dato = Request (\"dato\")

Set foddagbarn = Server.CreateObject (\"ADODB.Recordset\")

sqlstr = \"Select * from kalender where dag=\"&day(dato)&\" and mdr=\"&month(dato))
foddagbarn.open sqlstr, oConn, 1, 1
%>

<td valign=\"top\">
<span class=\"uoverskrift\"><IMG SRC=\"images/punkt.gif\" >&nbsp;<a class=\"uoverskrift\" href=\"default.asp?\"> Forsiden</a> <IMG SRC=\"images/punkt.gif\"> <a class=\"uoverskrift\" href=\"default.asp?side=kalender\">
Kalender</a> - Info: <%=foddagbarn.Fields(\"dato\")%></span><br><br>

<% If (foddagbarn.recordcount>0) Then

    Do while Not foddagbarn.EoF

    %>
    <center>
    <TABLE BORDER=\"0\" CELLSPACING=\"0\" class=\"tabel4\" width=\"600\">
   
    <tr>
        <TD class=\"tabel1\" colspan=\"2\" width=\"600\">
            <span class=\"overskrift\">Information -  <%=foddagbarn.Fields(\"overskrift\")%></span>
        </TD>
    </tr>

    <tr>
        <TD>
            <span class=\"normal\"><IMG SRC=\"images/pil.gif\" BORDER=\"0\" WIDTH=\"5\" HEIGHT=\"10\" ALIGN=\"bottom\" ALT=\"\">&nbsp;<b>Titel:</b>&nbsp;<%=foddagbarn.Fields(\"overskrift\")%></span>
        </TD>
    </tr>

    <tr>
        <TD class=\"tabel1\" width=\"1\">
        </TD>
    </tr>

    <tr>
        <TD>
            <span class=\"normal\"><IMG SRC=\"images/pil.gif\" BORDER=\"0\" WIDTH=\"5\" HEIGHT=\"10\" ALIGN=\"bottom\" ALT=\"\">&nbsp;<b>Gren(e):</b>&nbsp;<%=foddagbarn.Fields(\"gren\")%></span>
        </TD>
    </tr>

    <tr>
        <TD class=\"tabel1\" width=\"1\">
        </TD>
    </tr>

<%

    maaned = foddagbarn.Fields(\"mdr\")

    if maaned = \"1\" then vis = \"januar\"
    if maaned = \"2\" then vis = \"febuar\"
    if maaned = \"3\" then vis = \"marts\"
    if maaned = \"4\" then vis = \"april\"
    if maaned = \"5\" then vis = \"maj\"
    if maaned = \"6\" then vis = \"juni\"
    if maaned = \"7\" then vis = \"juli\"
    if maaned = \"8\" then vis = \"august\"
    if maaned = \"9\" then vis = \"september\"
    if maaned = \"10\" then vis = \"oktober\"
    if maaned = \"11\" then vis = \"november\"
    if maaned = \"12\" then vis = \"december\"

%>

    <tr>
        <TD>
            <span class=\"normal\"><IMG SRC=\"images/pil.gif\" BORDER=\"0\" WIDTH=\"5\" HEIGHT=\"10\" ALIGN=\"bottom\" ALT=\"\">&nbsp;<b>Dato:</b>&nbsp;<%=foddagbarn.Fields(\"dag\")%>. <%= vis %> - <%=foddagbarn.Fields(\"aar\")%></span>
        </TD>
    </tr>

    <tr>
        <TD class=\"tabel1\" width=\"1\">
        </TD>
    </tr>

    <tr>
        <TD>
            <span class=\"normal\"><IMG SRC=\"images/pil.gif\" BORDER=\"0\" WIDTH=\"5\" HEIGHT=\"10\" ALIGN=\"bottom\" ALT=\"\">&nbsp;<b>Beskrivelse:</b><br><%=Replace(foddagbarn.Fields(\"beskrivelse\"), vbCrLf, \"<BR>\")%></span>
        </TD>
    </tr>

    <tr>
        <TD class=\"tabel1\" width=\"1\">
        </TD>
    </tr>

    <tr>
        <TD>
            <span class=\"normal\"><IMG SRC=\"images/pil.gif\" BORDER=\"0\" WIDTH=\"5\" HEIGHT=\"10\" ALIGN=\"bottom\" ALT=\"\">&nbsp;<b>Tilføjet af:&nbsp;</b><%=foddagbarn.Fields(\"tilfojet_af\")%></span>
        </TD>
    </tr>

    <tr>
        <TD class=\"tabel1\" width=\"1\">
        </TD>
    </tr>

    <tr>
        <TD>
            <span class=\"normal\"><IMG SRC=\"images/pil.gif\" BORDER=\"0\" WIDTH=\"5\" HEIGHT=\"10\" ALIGN=\"bottom\" ALT=\"\">&nbsp;<b>Sidst opdateret:&nbsp;</b><%=foddagbarn.Fields(\"tilfojet_den\")%></span>
        </TD>
    </tr>

    <tr>
        <TD class=\"tabel1\" width=\"1\">
        </TD><!-- hvad er det her??? ->  <p><br> -->
    </tr>

    <%
   
    foddagbarn.MoveNext
   
    Loop

    %>

    </TABLE>

    </center><p><br>

    <center>

    <TABLE BORDER=\"1\" bordercolor=\"#3C9751\" CELLSPACING=\"0\" class=\"tabel4\">

        <TR>
            <TD class=\"tabel1\" colspan=\"6\" width=\"600\" bgcolor=\"#3C9751\"><span class=\"overskrift\">Andre måneder</span></TD>
        </tr>

        <TR>

            <td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-01-2001\">Januar</a></span></center></td>
            <td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-02-2001\">Febuar</span></center></td>
            <td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-03-2001\">Marts</span></center></td>
            <td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-04-2001\">April</span></center></td>
            <td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-05-2001\">Maj</span></center></td>
            <td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-06-2001\">Juni</span></center></td>
        </tr>
       
        <TR>
            <td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-07-2001\">Juli</span></center></td>
            <td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-08-2001\">August</span></center></td>
            <td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-09-2001\">September</span></center></td>
            <td width=\"100\"><center><span class=\"normal\"><a
            href=\"default.asp?side=kalender&date=01-10-2001\">Oktober</span></center></td>
            <td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-11-2001\">November</span></center></td>
            <td width=\"100\"><center><span class=\"normal\"><a href=\"default.asp?side=kalender&date=01-12-2001\">December</span></center></td>
        </tr>

        </table>
       
        </center><p><br>

    <%

        foddagbarn.close        \' luk recordsettet
    End If

  End If

\' Ryd op!

set foddagbarn = nothing
set oConn = nothing

%>
Avatar billede sorenmt84 Juniormester
11. juni 2001 - 20:42 #13
Jeg har lige prøvet din løsning, den virker fint, bortset fra at den hver tæller eller viser noget andet hvis der ikke er nogen aktiviteter!
Avatar billede spectual Nybegynder
12. juni 2001 - 10:55 #14
Det er fordi (det har jeg lagt mærke til) du ikke har nogen håndtering af hvad der skal ske, hvis .recordcount er 0.
Avatar billede spectual Nybegynder
12. juni 2001 - 10:57 #15
Problemet for mig er, at jeg ikke kan teste siden, fordi jeg har din database o.s.v.

Men jeg kan vise dig hvor du skal sætte det ind....:

(følgende er en kopi af de sidste linjer):


        </table>
       
        </center><p><br>

    <%

        foddagbarn.close        \' luk recordsettet
    else  \' Nå. Ingen aktiviteter. Hvad skal jeg saa?
      response.write (\"Ingen aktiviteter.<br>\")
    end if

  End If

\' Ryd op!

set foddagbarn = nothing
set oConn = nothing

%>
Avatar billede spectual Nybegynder
12. juni 2001 - 10:58 #16
...fordi jeg ikke har din database o.s.v....
Avatar billede sorenmt84 Juniormester
12. juni 2001 - 12:14 #17
Jeg har lige langt hele filen op, så du kan se oversigten og så siden med detaljer, som der også er vist her.
Databasen er også med!

Hvis du så gider sætte det rigtigt ind. Jeg har lige prøvet dit sidste forslag, men uden held.
Det vil være godt, hvis du gider sætte tælleren ind, samt den hvis der ikke er nogen aktiviteter!

--------------------------------------------------
Hvis du kan lave følgende i stedet, vil jeg gerne give 200 point i stedet:

Det hele skal være på samme måde, dog skal man i kalenderoversigten kun kunne klikke på de datoer hvor der er aktiviteter. Jeg ved ikke om det kan laves, da det ikke er mig der har skrevet selve koden!
www.sejs.dk/adm/kalender.zip
Avatar billede spectual Nybegynder
12. juni 2001 - 12:18 #18
Jeg kigger lige på det
Avatar billede spectual Nybegynder
12. juni 2001 - 12:19 #19
(jeg har dog ikke tid lige nu her)
Avatar billede spectual Nybegynder
12. juni 2001 - 13:33 #20
Jeg kan ikke rigtigt sætte mig ind i hvordan det skal være - jeg kender ikke baggrunden for siden. Det er også ligesom at der mangler noget, f.eks. noget grafik, default.asp m.m.

Mht. det sidste om \"dato klik\":

Det kan sagtens lade sig gøre; spørgsmålet er hvor lang tid det tager at lave (afhænger af sidens konstruktion; hvor hensigtsmessægt det er lavet).

Jeg gider ikke at bruge oceaner af tid på det når det ikke er lønnet, men hvis lægger det hele ud, kan jeg godt bruge lidt tid på at se hvad der skal til.
Avatar billede sorenmt84 Juniormester
12. juni 2001 - 14:00 #21
Det er noget jeg skal bruge om ikke ret lang tid, så lad os bare droppe det. Men hvis du kan sætte en tæller ind, samt få den til at virke med at den skriver \"ingen aktivitet\" eller lign. eler det s.... godt!
Avatar billede spectual Nybegynder
12. juni 2001 - 14:04 #22
Ja, det kunne godt hvis jeg bare forstod hvordan det skal se ud når det virker.
Avatar billede sorenmt84 Juniormester
12. juni 2001 - 14:51 #23
Du kan se under filen kalender.asp?side=info

Der henter den oplysninger fra databasen - hvis der sker noget den dag! Øverst oppe skal der stå antal aktiviteter: xx (hvor xx er tallet på det antal poster som den evt. henter fra databasen. Hvis det tal er 0 - altså ingen aktiviteter skal den i stedet for at vise tabellen med informationer - hvor den naurligvis ikke kan sætte noget ind, da der ikke er nogen poster den dag! skrive f.eks. \"ingen aktiviteter\"

Hvis du kan lave så det virker, behøves du ikke tænke på opsætning, det skal jeg nok selv ordne!
Avatar billede sorenmt84 Juniormester
17. juni 2001 - 15:26 #24
Jeg har fundet nogle gamle script, hvor jeg stjal tælle funktionen fra. Så det virker nu!

Løsningen på det andet med at den skal vise noget hvis der ikke er nogen poster i databasen var at flytte <%
If Not foddagbarn.EoF Then
%>
<%
Do while Not foddagbarn.EoF
%>
lidt højere op på siden...
Avatar billede spectual Nybegynder
18. juni 2001 - 09:16 #25
ok og tak for pointene.

Det er lidt svært for at hjælpe når jeg ikke kan teste siden og ved hvordan det skal se ud.
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