Fields fel???

ASP

8 svar · 161 visningar · startad av Mav

Medlem sedan juni 2000117 inlägg
Trådstart#1

Hoppas ngn kan hjälpa mig med följande (säkert jättelätt att åtgärda men just nu står det still). Får följande fellmeddelande:
ADODB.Fields fel '800a0cc1'
ADO kunde inte hitta objektet i mängden som överensstämmer med det begärda namnet eller numret.

Koden:
<%
Set fritid = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
fritid.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:\inetpub\wwwroot\fritidsok\FritidKund.mdb"
If Request.Form("knapp") = "Sök" Then
SQL = "SELECT * From Adresser"
End If
rs.Open SQL, fritid
%>
....
<TR>
<TD><A HREF = fritid_htl.asp?Kund=<%=rs("Kundnamn")%>><%=rs("Kundnamn")%></A>
<TD><%=rs("Ort")%><BR>
</TR>

Medlem sedan dec. 19996 721 inlägg
#2

Ja antar att det var en del som saknades här, eftersom detta bara skulle lista ut en adress ur databasen, helt utan att bry sig om vilken.

If Request.Form("knapp") = "Sök" Then
SQL = "SELECT * From Adresser"
End If
rs.Open SQL, fritid

...är inte så bra, för om Request.Form("knapp") inte är "Sök" så kommer rs.Open att försöka exekvera en tom SQL-sats.

Felet verkar dock bero på att du inte har någon kolumn i databasen som heter "Kundnamn".

Medlem sedan juni 2000117 inlägg
#3

Det är just det som är grejen. Jag har en kolumn som heter kundnamn därför förstår jag inte varför felet uppstår.
Vad ska jag använda istället för

If Request.Form("knapp") = "Sök" Then
SQL = .....
?

Medlem sedan dec. 19996 721 inlägg
#4

Har du fler vägar in i skriptet? Jag menar: kan skriptet köras utan att man trycker på knappen "knapp" med värdet "Sök"?

Medlem sedan juni 2000117 inlägg
#5

Nej, det körs bara om man trycker på "knapp". Hoppas ni eller ngn kan hitta en lösning eller ett annat alternativ för att kunna köra skriptet.

Medlem sedan dec. 19996 721 inlägg
#6

Varför har du då en if-sats, som kollar om man tryckt på rätt knapp?

Ta bort if-satsen, så ska du se att det funkar bättre.

Medlem sedan juni 2000117 inlägg
#7

Tack för hjälpen men vad ska jag skriva istället då? Får nu detta felmeddelande:
Programsats förväntas.
/fritidsok/fritid_sok_ok.asp, rad 14
=Request.form("frisok")

Den första sidan har följande kod:

<FORM METHOD = "POST" ACTION = "fritid_sok_ok.asp">
<TABLE BORDER = 1>
<TR>
<TD>Stad:
<TD><INPUT TYPE = "TEXT" NAME = "frisok">
<TD><INPUT TYPE = "SUBMIT" VALUE = "Sök">
</TR>

Som du ser så hänvisar den till en annan sida som ser ut som följer:

<%
Set fritid = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
fritid.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:\inetpub\wwwroot\fritidsok\FritidKund.mdb"%>

<%=Request.form("frisok")
SQL = "SELECT * From Adresser"
rs.Open SQL, fritid
%>

<H2>Sökresultat:</H2>
<TABLE BORDER = 1>
<TR>
<TD ALIGN = CENTER><B>Ort</B>
<TD ALIGN = CENTER><B>Namn</B>
</TR>
<%
Do While Not rs.EOF
%>
<TR>
<TD><A HREF = fritid_htl.asp?Kund=<%=rs("Kundnamn")%>><%=rs("Kundnamn")%></A>
<TD><%=rs("Ort")%><BR>
</TR>
<%
rs.MoveNext
Loop
%>

Hoppas ni ser ngn lösning.
Tack på förhand!

Medlem sedan mars 2000263 inlägg
#8

ändra
<%=Request.form("frisok")
SQL = "SELECT * From Adresser"
rs.Open SQL, fritid
%>

till

<%
SQL = "SELECT * From Adresser WHERE kundnamn LIKE '%" & Request.form("frisok") & "%' OR ort LIKE '%" & Request.form("frisok") & "%'"
rs.Open SQL, fritid
%>

Medlem sedan juni 2000117 inlägg
#9

Gjorde som du sa men fick då istället följande felmedelande:
Microsoft OLE DB Provider for ODBC Drivers fel '80040e10'

[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 2 förväntades.

/fritidsok/fritid_sok_ok.asp, rad 16

Vad gör man för att lösa detta?
Tack på förhand!

263 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
117 ms — ändringar (db)