webForumDet fria alternativet

Fields fel???

8 svar · 156 visningar · startad av Mav

MavMedlem sedan juni 2000117 inlägg
#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>

------------------
//Mav

emissionMedlem 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".

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

MavMedlem 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 = .....
?

emissionMedlem 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"?

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

MavMedlem 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.

------------------
//Mav

emissionMedlem 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.

------------------
Gunnar Liljas - webbutvecklare
Leon Reklambyrå AB

MavMedlem 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!

------------------
//Mav

bohlinMedlem 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
%>

------------------
/bohlin

MavMedlem 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!

------------------
//Mav

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)