Avatar billede dudesicko Novice
15. april 2004 - 17:44 Der er 4 kommentarer og
2 løsninger

Request.QueryString giver mig problemer, fatter minus

Arrg, hvad er det jeg ikke gør rigtig her?


Jeg har den her. random.htm

<form method="get" action="random.asp">
  <div align="center">
    <center>
      <table border="0">
        <tr>
          <td>Vælg database: </td>
          <td>
            <select size="1" name="databasenr">
            <option>nr1</option>
            <option>nr2</option>
            </select></td>
        </tr>
        <tr>
          <td colspan="2" align="center">
            <input type="submit" value="Send">
          </td>
        </tr>
      </table>
    </center>
  </div>

Den sender så "databasenr" videre til random.asp. MEN random.asp har jeg sku lidt problemer med :(
Jeg ville jo meget gerne have at enten nr1 eller nr2 ville blive valgt, som database, men alt der sker er at jeg får en fejl.

Microsoft OLE DB Provider for ODBC Drivers error '80040e37'

[Microsoft][ODBC Microsoft Access Driver] The Microsoft Jet database engine cannot find the input table or query 'dbnavn'. Make sure it exists and that its name is spelled correctly.

/tema/konkurrencer/random.asp, line 21

Linie 21 er så: Set objRsCount = objConn.Execute(strSQL)



random.asp
<%
    dbnavn = Request.QueryString("databasenr")

    Function RandomRs(intInterval)
        Randomize
        lngTal = CInt(Rnd() * intInterval)
       
        If lngTal = 0 Then
            RandomRs = lngTal + 1
        Else
            RandomRs = lngTal
        End If
    End Function
   
    Set objConn = Server.CreateObject("ADODB.Connection")
   
    objConn.Open "Driver={MicroSoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("database.mdb")
   
    strSQL = "SELECT COUNT(*) FROM dbnavn"
    Set objRsCount = objConn.Execute(strSQL)
   
    Randomize
   
    strSQL = "SELECT * FROM dbnavn WHERE id = " & RandomRs(objRsCount(0))
    Set objRs = objConn.Execute(strSQL)
   
    Response.Write(objRs("Navn"))
%>

Håber en af jeg kan hjælpe mig her.
Avatar billede hmortensen Nybegynder
15. april 2004 - 17:48 #1
strSQL = "SELECT COUNT(*) FROM " & dbnavn
Avatar billede nute Nybegynder
15. april 2004 - 17:50 #2
60 points er vel lidt i overkant for dette ... anywho ...

du skal sætte 'dbnavn' ind som en variabel i dine sql ... ikke i ren tekst:

strSQL = "SELECT COUNT(*) FROM dbnavn"

skal være strSQL = "SELECT COUNT(*) FROM " & dbnavn

og

strSQL = "SELECT * FROM dbnavn WHERE id = " & RandomRs(objRsCount(0))

skal være

strSQL = "SELECT * FROM " & dbnavn & " WHERE id = " & RandomRs(objRsCount(0))

/nute
Avatar billede cpccorp Juniormester
15. april 2004 - 18:07 #3
Request.QueryString skal erstattes med request.form
Avatar billede dudesicko Novice
15. april 2004 - 18:24 #4
Nute og Hindu gider i lige svare, jeg vil godt give jer 30 point hver.
Avatar billede nute Nybegynder
15. april 2004 - 18:29 #5
nja ... som jeg allerede har skrevet. 60 er altfor mange points for dette spm. Desuden var hindu_skp først ude med svaret ... jeg postet blot en uddybning

/nute
Avatar billede hmortensen Nybegynder
15. april 2004 - 19:59 #6
Og du skal også lige rette til request.form, som cpccorp skriver
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