Avatar billede sbm Nybegynder
03. april 2001 - 01:17 Der er 11 kommentarer og
1 løsning

Expected statement

Jeg har følgende fejl:

Microsoft VBScript compilation error \'800a0400\'
Expected statement
/asp/poll.asp, line 55
end if
^

Linie 55 svarer til den næst-sidste End if. Her er kildekoden. Hvad helvede er der her som jeg ikke ser? (Ja ja, jeg ved godt der er en del der kunne gøres kønnere. Jeg er en glad ASP-amatør. :-)

<%
    set conn = server.createobject(\"ADODB.connection\")
    strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"../db/polls.mdb\")
    conn.open strDSN
    SQL = \"SELECT * FROM poll WHERE aktiv = \'Ja\' order by ID desc\"
    set RS = conn.execute( SQL )
    if not RS.eof then
        Poll_ID = RS(\"ID\")
        response.write \"<table border=0 width=\'95%\'><tr><td colspan=2><b><center>Poll:</center></b></td></tr>\"
        response.write \"<tr><td colspan=2>\" & RS(\"Overskrift\") & \"</td></tr>\"

        valgtMulighed = \"null\"
        If mode = \"loginnormal\" or mode = \"loginadmin\" then
        SQL=\"SELECT * FROM stemmer WHERE Poll_ID =\"&Poll_ID&\" and HoldNr =\"&Request.Cookies(\"login\")(\"holdnr\")
        set RS = conn.execute( SQL )
        if RS.eof then
            valgtMulighed = 0
        else
            valgtMulighed = RS(\"Valgtmulighed\")
        end if
        end if

        SQL \"SELECT * FROM options WHERE Poll_ID =\"&Poll_ID&\" order by MulighedNr ASC\"
        set RS = conn.execute( SQL )
        if RS.eof then
        response.write \"<tr><td>Fejl i Poll-data.</td></tr>\"
        mulighed = RS(\"MuligehedNr\")
        beskrivelse = RS(\"Beskrivelse\")
        if not valgtMulighed = 0 then
            set conn2 = server.creatoobject(\"ADODB.connection\")
            conn2.open strDSN
        end if
        else
        while not RS.eof do
            if valgtMulighed = 0 then
            response.write \"<tr><td valign=center>\"
            response.write \"<input name=\'pollchoice\' type=radio value=\'\"& mulighed &\"\'></td>\"
            response.write \"<td>\"& beskrivelse &\"</td></tr>\"
            else
            SQL = \"SELECT count(Poll_ID) FROM stemmer WHERE Poll_ID=\"&Poll_ID&\" AND mulighed=\" & mulighed
            set RS2 = conn2.execute( SQL )
            response.write \"<tr><td valign=center>\"
            response.write \"<b>\"& RS(\"Poll_ID\") & \"</b></td><td>\" & beskrivelse & \"</td></tr>\"
            end if
            RS.movenext
        loop
        if not valgtMulighed = 0 then
            RS2 = null
            conn2.close
        end if

        if valgtMulighed = \"null\" then
            response.write \"<tr><td colspan=2>Log ind for at stemme</td></tr>\"
        end if
        end if
        response.write\"</table>\"
    end if
    RS = null
    conn.close
%>
Avatar billede tdaugaard Nybegynder
03. april 2001 - 01:20 #1
du har ikke lukket din

\"If mode = \"loginnormal\" or mode = \"loginadmin\" then \" så vidt jeg kan se ...
Avatar billede sbm Nybegynder
03. april 2001 - 01:20 #2
Jeg beklager at en del af indrykningerne er skredet i svinget ved min cut/paste.
Avatar billede sbm Nybegynder
03. april 2001 - 01:22 #3
tdaugaard > Jo da. Jeg har faktisk siddet og talt igennem hvor mange IF og END IF jeg har. Der er dem der skal være.
Avatar billede tdaugaard Nybegynder
03. april 2001 - 01:22 #4
hæ hæ .. lige et sec ..
Avatar billede sbm Nybegynder
03. april 2001 - 01:23 #5
Damn. Du er schnell. :-)
Avatar billede tdaugaard Nybegynder
03. april 2001 - 01:26 #6
yeeps :-)
Avatar billede tdaugaard Nybegynder
03. april 2001 - 01:41 #7
Prøv med følgende. Du havde flg:

while not RS.eof do

hvad laver Do der ?

<%
    set conn = server.createobject(\"ADODB.connection\")
    strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"../db/polls.mdb\")
    conn.open strDSN
 
    SQL = \"SELECT * FROM poll WHERE aktiv = \'Ja\' order by ID desc\"
    set RS = conn.execute( SQL )
   
    if not RS.eof then
        Poll_ID = RS(\"ID\")
        response.write \"<table border=0 width=\'95%\'><tr><td colspan=2><b><center>Poll:</center></b></td></tr>\"
        response.write \"<tr><td colspan=2>\" & RS(\"Overskrift\") & \"</td></tr>\"

        valgtMulighed = \"null\"
        If mode = \"loginnormal\" or mode = \"loginadmin\" then
            SQL=\"SELECT * FROM stemmer WHERE Poll_ID =\" & Poll_ID & \" and HoldNr =\" & Request.Cookies(\"login\")(\"holdnr\")
            set RS = conn.execute( SQL )

            if RS.bof then valgtMulighed = 0 else valgtMulighed = RS(\"Valgtmulighed\")
        end if

        SQL \"SELECT * FROM options WHERE Poll_ID=\" & Poll_ID & \" order by MulighedNr ASC\"
        set RS = conn.execute(SQL)
       
        if RS.bof then
            response.write \"<tr><td>Fejl i Poll-data.</td></tr>\"
            mulighed = RS(\"MuligehedNr\")
            beskrivelse = RS(\"Beskrivelse\")
           
            if not valgtMulighed = 0 then
                set conn2 = server.creatoobject(\"ADODB.connection\")
                conn2.open strDSN
            end if
        else
            while not RS.eof
                if valgtMulighed = 0 then
                    response.write \"<tr><td valign=center>\"
                    response.write \"<input name=\'pollchoice\' type=radio value=\'\"& mulighed &\"\'></td>\"
                    response.write \"<td>\"& beskrivelse &\"</td></tr>\"
                else
                    SQL = \"SELECT count(Poll_ID) FROM stemmer WHERE Poll_ID=\"&Poll_ID&\" AND mulighed=\" & mulighed
                    set RS2 = conn2.execute( SQL )

                    response.write \"<tr><td valign=center>\"
                    response.write \"<b>\"& RS(\"Poll_ID\") & \"</b></td><td>\" & beskrivelse & \"</td></tr>\"
                end if
                RS.movenext
            loop
            if not valgtMulighed = 0 then
                RS2 = null
                conn2.close
            end if

            if valgtMulighed = \"null\" then
                response.write \"<tr><td colspan=2>Log ind for at stemme</td></tr>\"
            end if
        end if

        response.write\"</table>\"
    end if

    Set RS = nothing
    conn.close
%>
Avatar billede dudal Nybegynder
03. april 2001 - 01:47 #8
Og så lige loop til WEND

:-)
Avatar billede sbm Nybegynder
03. april 2001 - 01:48 #9
Når jeg har en loop skal jeg vel også have en do...?
Avatar billede tdaugaard Nybegynder
03. april 2001 - 01:48 #10
næ .. jeg kan faktisk godt se hvad problemet var ..

\"while not RS.eof do\" skulle have været \"do while not RS.eof\"

så: så er den der :-)

<%
    set conn = server.createobject(\"ADODB.connection\")
    strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"../db/polls.mdb\")
    conn.open strDSN
 
    SQL = \"SELECT * FROM poll WHERE aktiv = \'Ja\' order by ID desc\"
    set RS = conn.execute( SQL )
   
    if not RS.eof then
        Poll_ID = RS(\"ID\")
        response.write \"<table border=0 width=\'95%\'><tr><td colspan=2><b><center>Poll:</center></b></td></tr>\"
        response.write \"<tr><td colspan=2>\" & RS(\"Overskrift\") & \"</td></tr>\"

        valgtMulighed = \"null\"
        If mode = \"loginnormal\" or mode = \"loginadmin\" then
            SQL=\"SELECT * FROM stemmer WHERE Poll_ID =\" & Poll_ID & \" and HoldNr =\" & Request.Cookies(\"login\")(\"holdnr\")
            set RS = conn.execute( SQL )

            if RS.bof then valgtMulighed = 0 else valgtMulighed = RS(\"Valgtmulighed\")
        end if

        SQL \"SELECT * FROM options WHERE Poll_ID=\" & Poll_ID & \" order by MulighedNr ASC\"
        set RS = conn.execute(SQL)
       
        if RS.bof then
            response.write \"<tr><td>Fejl i Poll-data.</td></tr>\"
            mulighed = RS(\"MuligehedNr\")
            beskrivelse = RS(\"Beskrivelse\")
           
            if not valgtMulighed = 0 then
                set conn2 = server.creatoobject(\"ADODB.connection\")
                conn2.open strDSN
            end if
        else
            do while not RS.eof
                if valgtMulighed = 0 then
                    response.write \"<tr><td valign=center>\"
                    response.write \"<input name=\'pollchoice\' type=radio value=\'\"& mulighed &\"\'></td>\"
                    response.write \"<td>\"& beskrivelse &\"</td></tr>\"
                else
                    SQL = \"SELECT count(Poll_ID) FROM stemmer WHERE Poll_ID=\"&Poll_ID&\" AND mulighed=\" & mulighed
                    set RS2 = conn2.execute( SQL )

                    response.write \"<tr><td valign=center>\"
                    response.write \"<b>\"& RS(\"Poll_ID\") & \"</b></td><td>\" & beskrivelse & \"</td></tr>\"
                end if
                RS.movenext
            loop
            if not valgtMulighed = 0 then
                RS2 = null
                conn2.close
            end if

            if valgtMulighed = \"null\" then
                response.write \"<tr><td colspan=2>Log ind for at stemme</td></tr>\"
            end if
        end if

        response.write\"</table>\"
    end if

    Set RS = nothing
    conn.close
%>
Avatar billede sbm Nybegynder
03. april 2001 - 02:04 #11
Mja... Det regnede jeg også selv ud fra dit forrige svar, men pyt. Du har kigget på sagen, og fortjener pointene... :-)
Avatar billede tdaugaard Nybegynder
03. april 2001 - 02:11 #12
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