Har problem att få rätt på nedanstående, får ett fellmedd:
Feltyp:
Körningsfel i Microsoft VBScript (0x800A01A8)
Objekt krävs.: ''
test.asp, line 99
Och den linjen är <%Do Until RecSet.EOF %>
Kan någon vara snäll och förklara.........För jag är förlorad, trodde att det skulle fungera med nedanstående och har gjort lite fram och tillbaka. Det som jag hittills har lyckats med är att ha
<% IF Request.QueryString = "Lag1 osv." THEN %>
Men det är ingen kul lösning..........
Hoppas någon kan hjälpa mig, tack på förhand.
Mvh Sanny
<OPTION VALUE="" SELECTED>Välj lag</OPTION>
<OPTION VALUE="test.asp">Lag1</OPTION>
<OPTION VALUE="test.asp?&lag=LAG2">Lag2</a></OPTION>
</SELECT></FORM>
<% IF Request.QueryString = "" THEN %>
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../../db/site.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM tabell WHERE (lag = ' Lag1') ORDER BY namn ASC"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>
<%END IF%>
<%
strLag = request.querystring("lag")
If strLag = "" then
sortera = "ID"
else
sortera = strLag
%>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../../db/site.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM tabell WHERE " & sortera & " ORDER BY namn ASC"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>
<%END IF%>
<p>Klicka bara på Plus och Minus</p>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="150">Namn</td>
<td></td>
<td width="20" align="center"></td>
<td>Antal</td>
<td width="20" align="center"></td>
<td></td>
</tr>
<%Do Until RecSet.EOF %>
men da lagger du till en End IF till?!
/red
Raknar ihop 2 if-satser men du avslutar bara en?!
Sen varfor connectar du till samma databas flera ganger? Helt onodigt! Ska se om jag fixa till din kod lite battre....
Behöver hjälp och förklara gärna varför och var jag tänkt fel.
Tack på förhand, uppskattar all hjälp.
Mvh Sanny
Nytt fel:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
/ubk/admin/stat/skytteligan.asp, line 84
Och det är linjen:
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
i följande:
<%
strLag = request.querystring("lag")
If strLag = "" then
sortera = "ID"
else
sortera = strLag
%>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../../db/site.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM skytteligan WHERE " & sortera & " ORDER BY namn ASC"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>
<%END IF%>
Fick inte rätt på det du skrev ovan med response.write, men jag har ett exemple när det fungerar som det skall se nedan:
<html>
<!-- #include virtual="../adovbs.inc" -->
<SCRIPT LANGUAGE="JavaScript">
<!-- comment out JS
function select_item(name, value) {
this.name = name;
this.value = value;
}
function get_selection(select_object) {
// temporary holder
contents = new select_item();
// for every possible option in the SELECT field,
// find out which items are selected
for(var i=0;i<select_object.options.length; i++)
// if this item is selected, copy it's name and value to our
// temporary holder
if(select_object.options[i].selected == true) {
contents.name = select_object.options[i].text;
contents.value = select_object.options[i].value;
}
// return the temporary holder
return contents;
}
function update_frames(formfield) {
// figure out which item of snabbval is selected
selection = get_selection(formfield.snabbval)
// if item has no value, don't update the frame; otherwise update
// the frame with the document defined by selection value + ".htm"
if (selection.value != "" ) {
parent.location.href = selection.value;
}
}
function do_nothing() {
return true
}
// -->
</SCRIPT>
<link rel="stylesheet" type="text/css" href="../../css/leftmenu.css">
<b>Uppdatering skytteligan</b>
<FORM NAME=""><TD align="right" valign="middle"><SELECT valign="middle" NAME="snabbval" SIZE="1" onChange="update_frames(this.form);">
<OPTION VALUE="" SELECTED>Välj lag</OPTION>
<OPTION VALUE="skytteligan.asp">LAG1</OPTION>
<OPTION VALUE="skytteligan.asp?lag=lag2">lag2</a></OPTION>
</SELECT></FORM>
<% IF Request.QueryString = "" THEN %>
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../../db/site.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM skytteligan WHERE (lag = lag1') ORDER BY namn ASC"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>
<% END IF %>
<% IF Request.QueryString ("lag") = "lag2" THEN %>
<%
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Driver={Microsoft Access Driver (*.mdb)}; DBQ="& Server.MapPath("../../db/site.mdb")
Set RecSet = Server.CreateObject("ADODB.Recordset")
Visa = "SELECT * FROM skytteligan WHERE (lag = 'lag2') ORDER BY namn ASC"
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic %>
<%END IF%>
<p>Klicka bara på Plus och Minus</p>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td width="150">Namn</td>
<td></td>
<td width="20" align="center"></td>
<td>Antal</td>
<td width="20" align="center"></td>
<td></td>
</tr>
<%
Do Until RecSet.EOF
%>
<tr>
<td width="150"><% =RecSet("namn") %></td>
<td> </td>
<td width="20" align="center"><a href="up_skytteligan.asp?ID=<% =RecSet("id") %>&kolumn=mal&value=-1"><img src="_.gif" border="0"></A></td>
<td align="center"><% =RecSet("mal") %></td>
<td width="20" align="center"><a href="up_skytteligan.asp?ID=<% =RecSet("id") %>&kolumn=mal&value=--1"><img src="+.gif" border="0"></A></td>
<td width="30" align="right"><a href="del_skytteligan.asp?delID=<%=RecSet("ID")%>"><img src="../bilder/trash.gif" border="0" alt="Ta bort"></a></td>
</tr>
<tr>
<td width="1" colspan="6" bgcolor="#E0EBF8"><img src="images/1x1_tom.gif" width="1" height="1" border="0" alt=""></td>
</tr>
<%
RecSet.MoveNext
Loop
RecSet.Close
%>
</table>
<FORM METHOD="POST" ACTION="ny_skytteligan.asp">
<div align="left">
<table border="0" cellpadding="5" cellspacing="5" width="300">
<tr>
<td width="50%">Namn:</td>
<td width="50%"><INPUT TYPE="TEXT" NAME="namn"></td>
</tr>
<tr>
<td width="50%">Lag:</td>
<td width="50%"><SELECT valign="middle" NAME="Lag" SIZE="1">
<OPTION VALUE="" SELECTED>(Inget valt)</OPTION>
<OPTION type="text" name="lag">Lag1</OPTION>
<OPTION type="text" name="lag">Lag2</OPTION>
</select>
</tr>
<tr>
<td width="50%">Mål:</td>
<td width="50%"><INPUT TYPE="TEXT" NAME="mal"></td>
</tr>
</table>
</div>
<br>
<INPUT TYPE="submit" name="btn1" value="Skicka till databasen">
</FORM>
</body>
</html>
Men när jag du skall ha ett par lag så vill jag ju inte använda
<% IF Request.QueryString ("lag") = "lag2" THEN %>
<% IF Request.QueryString ("lag") = "lag3" THEN %>
osv.
för då blir det långt, försökte då göra en lösning med &sortera&.
Jag hittar inte riktigt tråden, hoppas du förstår vad jag menar.
Tack för att Ni tagit tid med mitt fel crisse6 och solbulle,
svar till crisse6:
När jag försöker få ut VISA så skriker den förfarande på tidigare fel, eller så satte jag in response.write på fel stället. Men jag tror att det var rätt, säger fortfarande:
Feltyp:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E10)
[Microsoft][Drivrutin för ODBC Microsoft Access] För få parametrar angavs. 1 förväntades.
skytteligan.asp, line 77
Och det är linjen:
RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
Anledningen till min sista lösning crisse6, var bara för att få igång allt. Men jag vill heller få &sortera& till att fungera, mkt bättre lösningen om jag får det att funka.
Sedan solbulle, testade din variant också. Fick fortfarande samma fel, se ovan. Svaret på din fråga om kolumn namn, så JA. Det finns en kolumn som heter lag.
Möjligen har du en kolumn som heter lag, däremot saknar du en annan kolumn som du frågar efter, nämligen en kolumn som heter exempelvis LAG2. Felet beror alltså på att du har glömt apostrofer runt värdet, som är av sträng/texttyp.
Så här borde det se ut:
Visa = "SELECT * FROM skytteligan WHERE lag = '" & sortera & "' ORDER BY namn ASC"
Nu har jag visserligen inte mer än sneglat här i koden pga av tidsbrist, så det är mycket möjligt att jag har fel, och det är mycket möjligt jag har missuppfattat problemet.