Du använder ett obefintligt objekt (Connection), använd Connect:
Set rs = Connect.Execute(SQL)
[r]Varför skapar du ett recoredset?[/r]
------------------
webEye.nu SweQuake.com
[Redigerat av Vide den 14 mar 2001]
8 svar · 315 visningar · startad av webbmannen
Gammal grej som jag inte får att fungera.
Sidan med den här koden visar snällt upp alla företag som finns i databasen:
<form action="edit.asp" method="post">
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=sökvägen"
SQL = "SELECT (company) AS ftg FROM retailer"
rs.Open SQL, Connect
%>
<select name="FÖretag" size="7" multiple>
<%
Do While Not rs.EOF
%>
<option value="<%=rs("ftg")%>" name="ftg"><%=rs("ftg")%>
<%
rs.MoveNext
Loop
%>
</select>
<input type="submit" value="Hämta företagets uppgifter">
</form>
När jag sedan klickar på knappen så är det meningen att jag ska komma till edit.asp med det valda företagets uppgifter ifyllda. Jag möts då av felmeddelandet:
Microsoft VBScript runtime error '800a01a8'
Object required: ''
/pages/register/edit.asp, line 46
Sidan edit.asp ser i sina väsentliga delar ut så här:
<form action="execute.asp" method="post">
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=sökvägen"
SQL = "SELECT * FROM retailer WHERE company ='" & Request("ftg") & "'"
Set rs = Connection.Execute(SQL)
%>
<input type="hidden" value="<%=rs("ID")%>" name="ID">
<input type="text" name="company" value="<%=rs("company")%>"
<select name="country">
<option value="<%=rs("country")%>" selected><%=rs("country")%>
<option value="Sverige" >Sverige
<option value="Norge">Norge
<option value="Danmark">Danmark
<option value="Finland">Finland
</select>
<select name="region">
<option value="<%=rs("region")%>" selected><%=rs("region")%>
<option value="Landet" >Landet
<option value="Syd">Syd
<option value="Mitt">Mitt
<option value="Nord">Nord
</select>
<input type="text" name="visit_address" value="<%=rs("visit_address")%>">
<input type="text" name="post_number" value="<%=rs("post_number")%>">
<input type="text" name="post_address" value="<%=rs("post_address")%>">
<input type="text" name="telephone" value="<%=rs("telephone")%>">
<input type="text" name="fax" value="<%=rs("fax")%>">
<input type="text" name="epost" value="<%=rs("epost")%>">
<input type="text" name="url" value="<%=rs("url")%>">
<input type="submit" value="Redigera denna återförsäljare">
</form>
Vad är det som felar? Det känns som att Request("ftg") inte gör det jag hoppats.
/webb
------------------
Vem ska du göra glad imorgon?
Du använder ett obefintligt objekt (Connection), använd Connect:
Set rs = Connect.Execute(SQL)
[r]Varför skapar du ett recoredset?[/r]
------------------
webEye.nu SweQuake.com
[Redigerat av Vide den 14 mar 2001]
sedan skapar du recordsetet två gånger.
<%
Set Connect = Server.CreateObject("ADODB.Connection")
[b]Set rs = Server.CreateObject("ADODB.Recordset")[/b]
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=sökvägen"
SQL = "SELECT * FROM retailer WHERE company ='" & Request("ftg") & "'"
[b]Set rs = Connection.Execute(SQL)[/b]
%>
jag föreslår att du skippar den första av de två. :)
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
respect my authoritaah!</A>
Vådan av att klippa och klistra gjorde att det blev onödigt mycket fel :h
Fortfarande fungerar det dock inte. Jag har justerat till:
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=sökvägen"
SQL = "SELECT * FROM retailer WHERE company ='" & Request("ftg") & "'"
Set rs = Connect.Execute(SQL)
%>
<input type="text" name="company" value="<%=rs("company")%>">
plus fortsättningen....
Vide,
Jag trodde jag behövde ett Recordset för att plocka ut uppgifterna med tex rs("company") - fel eller?
Nu har jag ett felmeddelande som ser ut så här:
Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Är det så att jag inte lyckas få med mig företagsnamnet från föregående sida eller?
/webb
------------------
Vem ska du göra glad imorgon?
rs skapas iom att du exekverar din SQL-sträng... :)
Felmeddelandet säger att det inte finns några poster att hämta ur rs...
Du kan göra en ifsats:
If NOT rs.EOF then
'det finns poster
Else
'det finns inga poster
End if
------------------
webEye.nu SweQuake.com
Ok, då fattar jag detta med rs (hoppas jag) :)
Men varför säger den att det inte finns någon post att hämta ur? Det företag jag väljer på föregående sida existerar ju, annars hade jag inte fått upp det redan där??
/webb
------------------
Vem ska du göra glad imorgon?
ok, din selectbox som jag antar att du vill hämta ifrån (varför är den multiple, förresten?) heter FÖretag, men när du skapar din sql-fråga hämtar du in ftg med request. jag föreslår att du byter namn på din selectbox till ftg, så ska det nog lösa sig. :)
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
respect my authoritaah!</A>
[Redigerat av @nders den 14 mar 2001]
@nders,
Ditt skarpa öga var säkert en av förklaringarna till att jag nu fått det till att fungera :) En annan var att ändra till följande
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Set rs = Server.CreateObject("ADODB.Recordset")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=sökvägen"
SQL = "SELECT * FROM retailer WHERE company ='" & Request("ftg") & "'"
rs.Open SQL, Connect
%>
Nu é man go och glad en stund igen :)
Tack för hjälpen !
/webb
------------------
Vem ska du göra glad imorgon?
[Redigerat av webbmannen den 14 mar 2001]
varsågod!
bara så du vet kan du ändra tebaks igen om du vill, för det gör ingen som helst skillnad. :)
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
respect my authoritaah!</A>