Om man skall göra en update så använder man execute-metoden för connection-objektet. Det behövs inget recordset.
En fundering till, om kolumnerna spelade och vunna är numeriska i databasen så skall det inte vara några '' kring värdet
------------------ essentitia preter non sans multiplicandum
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i UPDATE-uttryck.
/blueriders/edittabell.asp, rad 142
En följdfråga också.. I fall jag vill updater samtliga lag så måste jag väl typ använda koden
Om vunna och spelade är numeriska så bör det se ut så här
SQL = "UPDATE Tabell SET Spelade = " & Request("Spelade") & ", Vunna = " & Request("Vunna")
Connect.Execute SQL
Om du utför den här update-satsen så kommer samtliga rader i tabell att uppdateras. Så om du enbart vill update för ett lag så måste du ha med ett where-villkor som du hade i din andra sats.
SQL = "UPDATE Tabell SET Spelade =" & Request("Spelade") & ", Vunna = " & Request("Vunna")
SQL = SQL + " WHERE ID = " & ID
------------------ essentitia preter non sans multiplicandum
Ok testade med ditt föslag men får följande fel då
Microsoft OLE DB Provider for ODBC Drivers fel '80040e14'
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i UPDATE-uttryck.
/blueriders/edittabell3.asp, rad 140
Koden ser nu ut såhär. jag tycker ju att det borde fungera..
<% Option Explicit %>
<!-- #include file="adovbs.inc" -->
<html>
<body bgcolor="#000000" text="white">
<p> <%
' The first time this page is retrieved and any time it is
' submitted without being completely filled out, the form
' is displayed. If it is submitted and completely filled out
' the form is processed in the Else clause.
If Request("Lag")="" Then
Dim Connect,Blueriders
Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\home\B\Blueriders\dbq\blueriders.mdb"
Query = "SELECT * FROM Tabell "
Query = Query & "ORDER BY ID"
Set Blueriders = Connect.Execute(Query)
%>
<form method="POST" action="edittabell3.asp">
<table width="560" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="157">
<div align="center"> Lag </div>
</td>
<td width="50">
<div align="center">Sp</div>
</td>
<td width="44">
<div align="center">V</div>
</td>
<td width="44">
<div align="center">O</div>
</td>
<td width="44">
<div align="center">F</div>
</td>
<td width="44">
<div align="center">MF</div>
</td>
<td width="44">
<div align="center">MB</div>
</td>
<td width="44">
<div align="center">+/-</div>
</td>
<td width="44">
<div align="center">P</div>
</td>
<td width="44">
<div align="center">Pl</div>
</td>
</tr>
</table>
<%
Do While Not Blueriders.EOF %>
<table width="560" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="157">
<div align="center">
<input type="text" name="lag" value="<%=Blueriders("Lag")%>">
</div>
</td>
<td width="50">
<div align="center">
<input type="text" name="Spelade" size="5" value="<%=Blueriders("Spelade")%>">
</div>
</td>
<td width="44">
<div align="center">
<input type="text" name="Vunna" size="5" value="<%=Blueriders("Vunna")%>">
</div>
</td>
<td width="44">
<div align="center">
<input type="text" name="Oavgjord" size="5" value="<%=Blueriders("Oavgjord")%>">
</div>
</td>
<td width="44">
<div align="center">
<input type="text" name="Forlust" size="5" value="<%=Blueriders("Forlust")%>">
</div>
</td>
<td width="44">
<div align="center">
<input type="text" name="Malfram" size="5" value="<%=Blueriders("Malfram")%>">
</div>
</td>
<td width="44">
<div align="center">
<input type="text" name="Malbak" size="5" value="<%=Blueriders("Malbak")%>">
</div>
</td>
<td width="44">
<div align="center">
<input type="text" name="Malsk" size="5" value="<%=Blueriders("Malsk")%>">
</div>
</td>
<td width="44">
<div align="center">
<input type="text" name="Poang" size="5" value="<%=Blueriders("Poang")%>">
</div>
</td>
<td width="45">
<div align="center">
<input type="text" name="Siffra" size="5" value="<%=Blueriders("Siffra")%>">
</div>
</td>
</tr>
</table>
<%
Blueriders.MoveNext
Loop
%>
<table width="100" border="0" cellspacing="0" cellpadding="0">
<tr>
<td>
<div align="center">
<input type="submit" name="Submit" value="Ändra">
</div>
</td>
</tr>
</table>
</form>
<p>
<p>
<p> <% Else %> <%
Dim Query, Place, Lag, dtNow, SQL, ID, Tabell, Spelade, Vunna
dtNow = Now()
'On Error Resume Next
%>
<% Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "driver={Microsoft Access Driver (*.mdb)};dbq=d:\home\B\Blueriders\dbq\blueriders.mdb"
SQL = "UPDATE Tabell SET Spelade = " & Request("Spelade") & ", Vunna = " & Request("Vunna")
Connect.Execute SQL
If Err.Number = 0 Then %> <font size=5><i>Matchen är nu updaterad......</i></font>
<p> <a href="category.asp?lag=Alaget">Tillbaka till spelarna</a>
<p> <% Else %>
There was an error updating your ad.
<p> Error #<%=Err.Number%>:
<%=Err.Description%>
<p> <% End If %>
<% End If %>
<% Set Blueriders = Nothing %>
</body>
</html>
Ok nu förstår jag vad du menar med att uppdatera samtliga lag. Det går inte att göra i en update-sats utan du måste bygga en updatesats för varje lag. Då måste du också ha med ID i din form så att man får tag på det på updatesidan.
I och med att du har en mängd textfält med samma namn på förstasidan så kommer alla värden för att läggas ihop till kommaseparerade listor där det blir en lista för varje namn.
En möjlig lösning är att man vid update splittar upp varje lista till en array och sedan loopar och bygger och exekverar en update-sats för varje id.
'ungefär
'
wins = split(request.form("Vunna"),",",-1)
played = split(request.form("Spelade"),",",-1)
ids = split(request.form("ID"),",",-1)
for i = 0 to ubound(ids)
SqlStr = "update tabell set vunna = " & wins(i) & ", spelade = " & played(i) & " where id = " & ids(i)
connect.execute SqlStr
'
'felhantering
'
next
Näe, nu är det dags att gå hem och sova. Hoppas att det här är till någon hjälp.
------------------ essentitia preter non sans multiplicandum