Auf mehrere Suchkriterien eingehen
Patrick
- asp.net
Ich habe ein Formular das per method=post an eine ASP übergeben wird.
Die Suche wird mit einer Access-Database durchgeführt (kunden.mdb, darin eine Tabelle: "adressen")
Beim Formular kann man nach Ort (<select size=1..>), nach Name (Textfeld), nach Spezialität (<select size=1..>) Und nach Kategorie (3 radio buttons) suchen.
der Code:
<%
If IsObject(Session("finanzcon")) Then
Set nameConn = Session("finanzcon")
Else
Set nameConn = Server.CreateObject("ADODB.Connection")
nameConn.Open "DSN=kunden"
Set Session("finanzcon") = nameConn
End If
If Request.Form("Text") <> "" Then
sql = "SELECT * FROM [adressen] WHERE [Firma] LIKE '%" & Request.Form("Text") & "%'"
End if
If Request.Form("ort") <> "" Then
sql = "SELECT * FROM [adressen] WHERE [Ort] LIKE '%" & Request.Form("ort") & "%'"
End if
If Request.Form("dienst") <> "" Then
sql = "SELECT * FROM [adressen] WHERE [Spezialität] LIKE '%" & Request.Form("dienst") & "%'"
End if
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, nameConn, 3, 3
IF rs.BOF AND rs.EOF Then
Response.Write("<br><h5>Keine Übereinstimmung für <font color=""red"">" & Request.Form("Text") & "</font> gefunden !!</h5>")
ELSE
%>
<%
IF rs.BOF AND rs.EOF Then
Response.Write "<h5>Keine Übereinstimmung für den Suchbegriff: <font color=""red"">"& strSearchText & "</font>gefunden !</h5>"
Else
If rs.RecordCount = 1 Then
strAnzahl = ""
strArtikel = " enthält"
Else
strAnzahl = "n "
strArtikel = "en enthalten"
End if
Response.Write "<h5><font color=""red"">" & rs.RecordCount & "</font> Firmenbeschreibung" & strArtikel & " Ihren Suchbegriff: <font color=""red"">" & Request.Form("Text") & "</font></h5>"
%></font></p>
<table border="1" cellspacing="0" cellpadding="0" width="96%">
<tr>
<td bgcolor="#0000AA" width="27%"><strong><font color="#FFFFFF">Firma</font></strong></td>
<td bgcolor="#0000AA" width="45%"><strong><font color="#FFFFFF">Spezialität</font></strong></td>
<td bgcolor="#0000AA" width="20%" align="right">
<div align="left"><strong><font color="#FFFFFF">Ort </font></strong></div>
</td>
<td bgcolor="#0000AA" width="8%"><strong> </strong></td>
</tr>
<%
On Error Resume Next
rs.MoveFirst
do while Not rs.eof
%>
<tr>
<td width="27%"><%=Server.HTMLEncode(rs.Fields("Firma").Value) %></td>
<td width="45%"><%=Server.HTMLEncode(rs.Fields("Spezialität").Value) %></td>
<td align="left" width="20%"><%=Server.HTMLEncode(rs.Fields("Ort").Value) %></td>
<form name="<%= rs.Fields("Firma")%>A" method="POST" action="firma.asp?srtText">
<input type="Hidden" name="Firma" value="<%=rs.Fields("Firma")%>">
<td width="8%">
<input type="Submit" name="Ansehen" value="Details">
</td>
</form>
</tr>
<%
rs.MoveNext
loop
%>
</table>
<%
End if
End if
%>
</td>
<td height="412" width="20"> </td>
</tr>
</table>
Was ist falsch? Ich erhalte immer den Fehler:
" ADODB.Recordset error '800a0bb9'
The application is using arguments that are of the wrong type, are out of acceptable range, or are in conflict with one another.
suchen_test.asp, line 227 "
Linie 227:
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, nameConn, 3, 3
Was nun?
Danke