Avatar billede tblaster Nybegynder
26. marts 2002 - 15:58 Der er 24 kommentarer og
1 løsning

Div. problemer med asp og db

Jeg har nogle problemer som jeg håber der er nogle af jer der kan hjælpe med:
1. Jeg har en db med nogle vargruppe i som jeg har sat en asp side til at hente. Derefter skal den så oprette en liste med alle varegrupperne. Det gør den også fint nok men den sorter dem ikke i alfabetisk rækkefølge. Hvordan gør jeg det? Her er den kode jeg bruger:

SQL = "SELECT Varegruppe FROM Varegruppe"

   
        rs.Open SQL, Conn

        x = 0
        For x = 1 to 9999
        If rs.eof then
        Exit For
        Else

        'URL Convert
        Varegruppe = rs("Varegruppe")
        Varegruppe = "<a href='items.asp?" & Varegruppe & "'>" & Varegruppe & "</a>"
        'End URL Convert

        %>
        </font></b>
      <font face="Arial" size="2">
      <table border="0" cellpadding="0" cellspacing="0" width="100%">
        <tr>
          <td width="100%"><b><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="#000000">&nbsp;
        <% =Varegruppe %>
        <%
        rs.MoveNext
        End If
        Next
        %>

2. Mit andet problem er at jeg har oprette en søge side hvor når jeg søger så får jeg følgende fejl:

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

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 2.

Den skriver der er fejl i linje 101. Denne linje ser ud som følgende:

SQL = "SELECT Varenummer, Produkt, Udsalgspris, Bemærkning, Varegruppe FROM Produkter WHERE Name like '%" & Query & "%'"
        rs.Open SQL, Conn

Her er hele min kode. Håber der er nogle der kan hjælpe!

  <% Query = request.Form("txtQuery")%>
      <% If Query = "" then %>
      <br>
<form method="post" action="search_items.asp" name="submit_search">
  <table width="600" border="0" cellspacing="0" cellpadding="0">
    <tr>
            <td> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
              &nbsp;Søg vare:
              <input type="text" name="txtQuery">
                    <input type="submit" name="Submit" value="S&oslash;g">
        </font></td>
    </tr>
  </table>
</form>

      <%
        If Request.Form("Submit") = "Submit" Then
        Response.Write "Du har ikke søgt på noget!<BR>"
        End If
      %>
      <% Else %>
      <%
        If Query = "" then
        Response.Write("Søgningen gav intet resultat")
        end if
      %>
      <br>
<form method="post" action="search_items.asp" name="submit_search">
  <table width="600" border="0" cellspacing="0" cellpadding="0">
    <tr>
            <td> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;Søg vare:
              <input type="text" name="txtQuery">
                    <input type="submit" name="Submit" value="S&oslash;g">
        </font></td>
    </tr>
  </table>
</form>
<br>
      <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
      <%
        Set Conn = Server.CreateObject("ADODB.Connection")
        Set Rs = Server.CreateObject("ADODB.Recordset")
        'Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=varer.mdb"
        Conn.Open "DBQ=" & Server.Mappath("varer.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
   
        SQL = "SELECT Varenummer, Produkt, Udsalgspris, Bemærkning, Varegruppe FROM Produkter WHERE Name like '%" & Query & "%'"
        rs.Open SQL, Conn

        x = 0
        For x = 1 to 9999
        If rs.eof then
        If x = 1 Then
        Response.Write "Søgningen gav intet resultat.<BR>"
        End If
        Exit For
        Else

        ImageURL = rs("ImageURL")
        ImageURL = "<img src='" & ImageURL & "'>"
      %>
      </font>
      <table width="600" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="152" align="right" valign="middle">
            <div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
              &nbsp;Vare Nr.</font></div>
          </td>
          <td width="448"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
      <% =rs("Varenummer")%>
            </font></td>
        </tr>
        <tr>
          <td width="152" align="right" valign="middle">
            <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">&nbsp;Varenavn&nbsp;</font></div>
          </td>
          <td width="448"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
        <% =rs("Produkt")%>
            </font></td>
        </tr>
        <tr>
          <td width="152" align="right" valign="middle">
            <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">&nbsp;Beskrivelse&nbsp;</font></div>
          </td>
          <td width="448"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
        <% =rs("Bemærkning")%>
            </font></td>
        </tr>
        <tr>
          <td width="152" align="right" valign="middle">
            <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">&nbsp;Pris&nbsp;</font></div>
          </td>
          <td width="448"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
        <% =rs("Udsalgspris")%>
            </font></td>
        </tr>
        <tr>
          <td width="152" align="right" valign="top"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="default.asp?action=add&item=<% =rs("Varenummer")%>&count=1"><img src="images/koeb.jpg" width="34" height="20" border="0" alt="K&oslash;b vare"></a>&nbsp;</font></td>
          <td width="448" rowspan="2" align="left" valign="bottom"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
        <% =ImageURL %>
            </font></td>
        </tr>
        <tr>
          <td width="152" align="right" valign="middle">&nbsp;</td>
        </tr>
      </table>
      <font face="Verdana, Arial, Helvetica, sans-serif" size="2"> </font>
      <hr color="#CCCCCC" size="1" noshade>
      <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
      <%
        rs.MoveNext
        End If
        Next
        End If
      %>
      </font> </td>
        </tr>
      </table>
Avatar billede ras2000 Nybegynder
26. marts 2002 - 16:09 #1
Det første burde kunne klare ved at ændre SELECT Varegruppe FROM Varegruppe til SELECT Varegruppe FROM Varegruppe ORDER BY Varegruppe
Avatar billede ras2000 Nybegynder
26. marts 2002 - 16:10 #2
Mht 2 tror jeg det er nok at fjerne %'erne.
Avatar billede ras2000 Nybegynder
26. marts 2002 - 16:10 #3
Hovsa, svar
Avatar billede tblaster Nybegynder
26. marts 2002 - 19:13 #4
Jeg kan først lige se på om det virker imorgen ras200 ... hvis det gør skal du nok få dine point!
Avatar billede tblaster Nybegynder
27. marts 2002 - 09:17 #5
Ras2000 ... det hjalp med det første problem men det hjalp ikke bare at fjerne % i mit andet problem ... hvis jeg fjerner dem skriver den bare det samme :-)
Avatar billede tblaster Nybegynder
27. marts 2002 - 09:28 #6
Jeg har ændret lidt i koden og så nu en fejl med Expected 1.

Her er min rettet kode:

<table border="0" bgcolor="#FFFFFF" cellpadding="0" cellspacing="0" width="625">
  <tr>
    <td align="center" valign="middle">
      <p>
      <% Query = request.Form("txtQuery")%>
      <% If Query = "" then %>
      <br>
<form method="post" action="search_items.asp" name="submit_search">
  <table width="600" border="0" cellspacing="0" cellpadding="0">
    <tr>
            <td> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">
              &nbsp;Søg vare:
              <input type="text" name="txtQuery">
                    <input type="submit" name="Submit" value="S&oslash;g">
        </font></td>
    </tr>
  </table>
</form>

      <%
        If Request.Form("Submit") = "Submit" Then
        Response.Write "Du skal skrive et søgeord som du vil søge efter!<BR>"
        End If
      %>
      <% Else %>
      <%
        If Query = "" then
        Response.Write("Søgningen gav intet resultat")
        end if
      %>
      <br>
<form method="post" action="search_items.asp" name="submit_search">
  <table width="600" border="0" cellspacing="0" cellpadding="0">
    <tr>
            <td> <font size="2" face="Verdana, Arial, Helvetica, sans-serif">&nbsp;Søg vare:
              <input type="text" name="txtQuery">
                    <input type="submit" name="Submit" value="S&oslash;g">
        </font></td>
    </tr>
  </table>
</form>
<br>
      <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
      <%
        Set Conn = Server.CreateObject("ADODB.Connection")
        Set Rs = Server.CreateObject("ADODB.Recordset")
          'Modify and use this connection if your database is in your database directory
        'Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=scidata.mdb"
        Conn.Open "DBQ=" & Server.Mappath("scidata.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
   
        SQL = "SELECT Produkt, Udsalgspris, Bemærkning, Varegruppe FROM Produkter WHERE Name like '%" & Query & "%'"
        rs.Open SQL, Conn

        x = 0
        For x = 1 to 9999
        If rs.eof then
        If x = 1 Then
        Response.Write "Søgningen gav intet resultat.<BR>"
        End If
        Exit For
        Else

      %>
      </font>
      <table width="600" border="0" cellspacing="0" cellpadding="0">
        <tr>
          <td width="152" align="right" valign="middle">
            <div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">
              &nbsp;Vare Nr.</font></div>
          </td>
          <td width="448"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
            </font></td>
        </tr>
        <tr>
          <td width="152" align="right" valign="middle">
            <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">&nbsp;Varenavn&nbsp;</font></div>
          </td>
          <td width="448"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
        <% =rs("Produkt")%>
            </font></td>
        </tr>
                <tr>
          <td width="152" align="right" valign="middle">
            <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">&nbsp;Beskrivelse&nbsp;</font></div>
          </td>
          <td width="448"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
        <% =rs("Varegruppe")%>
            </font></td>
        </tr>
        <tr>
          <td width="152" align="right" valign="middle">
            <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">&nbsp;Beskrivelse&nbsp;</font></div>
          </td>
          <td width="448"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
        <% =rs("Bemærkning")%>
            </font></td>
        </tr>
        <tr>
          <td width="152" align="right" valign="middle">
            <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">&nbsp;Pris&nbsp;</font></div>
          </td>
          <td width="448"> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
        <% =rs("Udsalgspris")%>
            </font></td>
        </tr>
        <tr>
          <td width="152" align="right" valign="middle">&nbsp;</td>
        </tr>
      </table>
      <font face="Verdana, Arial, Helvetica, sans-serif" size="2"> </font>
      <hr color="#CCCCCC" size="1" noshade>
      <font face="Verdana, Arial, Helvetica, sans-serif" size="2">
      <%
        rs.MoveNext
        End If
        Next
        End If
      %>
      </font> </td>
        </tr>
      </table>

Dette er den fejl jeg får:

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

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

Hvad kan fejlen skyldes? Den skriver at fejlen ligger i linje 79, og hvis jeg kigger på linje 79 så ser den sådan ud:

        SQL = "SELECT Produkt, Udsalgspris, Bemærkning, Varegruppe FROM Produkter WHERE Name like '%" & Query & "%'"
        rs.Open SQL, Conn

Someone plz help me :-)
Avatar billede ras2000 Nybegynder
27. marts 2002 - 10:37 #7
Er du sikker på at Query er lig noget? Derudover synes jeg der er lidt kludder i din kode, du har to tilfælde af if Query = "". En anden ting du kunne prøve er at erstatte like med =, jeg kan ikke helt huske om man altid kan bruge like i en sql sætning.
Avatar billede tblaster Nybegynder
27. marts 2002 - 10:50 #8
Man kan godt bruge like i en sql sætning. Så derfor hjælper det heller ikke at ændre det til = !
Jeg ved godt at jeg har 2 tilfælde af if Query. Men de vises ikke på sammetidig. Den ene vises sammen med søge funktionen når siden loades og den anden vises med en ny søge funktion der vises når man har søgt!
Avatar billede ras2000 Nybegynder
27. marts 2002 - 10:53 #9
Nå, har lige tjekket det, og like skulle ikke give noget problem. Det eneste jeg kan forestille mig er at din Query er tom. Prøv med en
If query <> "" then rs.Open SQL, Conn
og se hvad den siger til det.
Avatar billede tblaster Nybegynder
27. marts 2002 - 10:59 #10
Det vil den ikke være med til ... den skrive:
Unterminated string constant
Avatar billede ras2000 Nybegynder
27. marts 2002 - 11:20 #11
Prøv at skriv noget inde i  pingerne istedet for en variabel, bare for at se om det virker.
SQL = "SELECT Produkt, Udsalgspris, Bemærkning, Varegruppe FROM Produkter WHERE Name like '%Nogle bogstaver du ved den kan finde%'"
Avatar billede tblaster Nybegynder
27. marts 2002 - 11:36 #12
Den gør det samme ... når jeg åbner siden får jeg kun søg muligheden og når jeg så søger så får jeg følgende besked:

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

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.
Avatar billede ras2000 Nybegynder
27. marts 2002 - 11:45 #13
Prøv at lave en side der sådan her ud, og se om det virker.
<html>
<body>
<%
Set Conn = Server.CreateObject("ADODB.Connection")
Set Rs = Server.CreateObject("ADODB.Recordset")
Conn.Open "DBQ=" & Server.Mappath("varer.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
SQL = "SELECT Name, Varenummer, Produkt, Udsalgspris, Bemærkning, Varegruppe FROM Produkter WHERE Name like '%et%'"
rs.Open SQL, Conn
Do while not rs.eof
    response.write rs(0)
    rs.MoveNext
loop
%>
</body>
</html>
Avatar billede tblaster Nybegynder
27. marts 2002 - 11:56 #14
Når jeg åbner siden skriver den at siden kan ikke åbnes!
Avatar billede ras2000 Nybegynder
27. marts 2002 - 12:05 #15
Er der er et felt der hedder Name?
Avatar billede tblaster Nybegynder
27. marts 2002 - 12:07 #16
nope
Avatar billede ras2000 Nybegynder
27. marts 2002 - 12:48 #17
Hvordan kan du så skrive WHERE Name like nogetsomhelst?
Avatar billede tblaster Nybegynder
27. marts 2002 - 12:54 #18
Nåh det var det du mente ... sorry ... name er defineret i databasen :-)
Avatar billede ras2000 Nybegynder
27. marts 2002 - 13:05 #19
Altså name er  en kolonne i tabellen produkter.
Avatar billede tblaster Nybegynder
27. marts 2002 - 15:17 #20
SQL = "SELECT Produkt, Udsalgspris, Bemærkning, Varegruppe FROM Produkter WHERE Name like '%" & Query & "%' ORDER BY Varegruppe, Produkt, Udsalgspris, Bemærkning"

INNER JOIN Varegruppe ON Produkter.varegruppe = Varegruppe.VaregruppeId"

Jeg fik det andet til at virke ... hvordan kan man så kæde følgende ting sammen?!?!?!?!
Avatar billede ras2000 Nybegynder
27. marts 2002 - 15:19 #21
SQL = "SELECT Produkt, Udsalgspris, Bemærkning, Varegruppe FROM INNER JOIN Varegruppe ON Produkter.varegruppe = Varegruppe.VaregruppeId WHERE Name like '%" & Query & "%' ORDER BY Varegruppe, Produkt, Udsalgspris, Bemærkning"
Avatar billede tblaster Nybegynder
27. marts 2002 - 15:26 #22
Det hjalp ikke ... der gør bare at der går helt ged i det :-(
Avatar billede tblaster Nybegynder
27. marts 2002 - 15:34 #23
har fundet løsningen
Avatar billede tblaster Nybegynder
27. marts 2002 - 16:21 #24
Sikke alle de problemer jeg har ... her er endnu en ... håber du kan hjælpe igen!

Jeg har en side med nogle links som åbner en side med følgende kode i:

<%Language = "VBScript"%>
<%Category = request.Querystring%>
<html>
<head>
<meta name="GENERATOR" Content="Microsoft FrontPage 4.0">
<title>Eshop</title>
<style type="text/css">
<!--
a:link      { color: #808080 }
a:visited    { color: #808080 }
a:hover      { color: #ff9900 }
-->
</style>
</head>
<body bgcolor="#808080" marginwidth="0" marginheight="0" text="#808080" link="#333333">
<basefont face="Verdana" size="2">
<table width="100%" cellpadding="0" cellspacing="0" border="1" bgcolor="#FFFFFF" bordercolorlight="#000000">
  <tr>
    <td bgcolor="#333333" align="left" valign="middle" nowrap><b><font color="#FFFFFF" face="Verdana" size="2">Varer:</font></b></td>
  </tr>

  <tr>
      <font face="Arial" size="4"><b>
          <td width="100%" valign="top"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
            <%

If Varegruppe = "" then
response.Write("Skriv venligst hvad du vil søge på")
else
end if

        Set Conn = Server.CreateObject("ADODB.Connection")
        Set Rs = Server.CreateObject("ADODB.Recordset")
        'Modify and use this connection if your database is in your database directory
        'Conn.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=db.mdb"
        Conn.Open "DBQ=" & Server.Mappath("db.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"
   
SQL = "SELECT Varenummer, Produkt, Udsalgspris, Bemærkning, Varegruppe FROM Produkter WHERE (Varegruppe = '" & Varegruppe & "')"
   
rs.Open SQL, Conn


For x = 1 to 10
    If rs.eof then
        Exit For
    Else
ImageURL = rs("ImageURL")
ImageURL = "<img src='" & ImageURL & "'>"

%>
            <br>
      </font>
      <hr align="left" size="1" width="600">
      <table width="600" border="0" cellspacing="0" cellpadding="0">
        <tr>
                <td width="152" align="right" valign="middle" height="19">
                  <div align="left"><font size="2" face="Verdana, Arial, Helvetica, sans-serif">Vare
              nr.&nbsp;</font></div>
          </td>
                <td width="448" height="19"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
                  <% =rs("Varenummer")%>
                  </font></td>
        </tr>
        <tr>
          <td width="152" align="right" valign="middle">
            <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Vare
              navn&nbsp;</font></div>
          </td>
          <td width="448"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
            <% =rs("Produkt")%>
            </font></td>
        </tr>
        <tr>
          <td width="152" align="right" valign="middle">
            <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Vare
              beskrivelse </font></div>
          </td>
          <td width="448"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
            <% =rs("Bemærkning")%>
            </font></td>
        </tr>
        <tr>
          <td width="152" align="right" valign="middle">
            <div align="left"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Pris</font></div>
          </td>
          <td width="448"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
            <% =rs("Udsalgspris")%>
            </font></td>
        </tr>
        <tr>
          <td width="152" align="right" valign="middle"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="default.asp?action=add&item=<% =rs("Varenummer")%>&count=1"><img src="images/koeb.jpg" width="34" height="20" border="0"></a>&nbsp;</font></td>
          <td width="448" rowspan="2" align="left" valign="bottom"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">
            <% =ImageURL %>
            </font></td>
        </tr>
        <tr>
          <td width="152" align="right" valign="middle">&nbsp;</td>
        </tr>
      </table>
      <font face="Verdana, Arial, Helvetica, sans-serif" size="2"><br>
            <%
      rs.MoveNext
    End If
Next
%>
            </font></td>
      </b></font>
  </tr>

</table>

      </body>
</html>

---------------------------------------------------------------------
Når jeg så trykke på linket får jeg følgende fejl på siden:

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

[Microsoft][ODBC Microsoft Access Driver] Too few parameters. Expected 1.

Den linje den siger der er fejl i er denne linje:

SQL = "SELECT Varenummer, Produkt, Udsalgspris, Bemærkning, Varegruppe FROM Produkter WHERE (Varegruppe = '" & Varegruppe & "')"
rs.Open SQL, Conn

Kan du hjælpe igen?
Avatar billede ras2000 Nybegynder
02. april 2002 - 09:44 #25
Det eneste jeg kan forestille mig, er at den sidste varegruppe er en tom streng.
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