webForumDet fria alternativet

Generell editering av post

ASPur ASP

1 svar · 165 visningar · startad av wazid

wazidMedlem sedan maj 2001156 inlägg
#1

Hej

Jag vill göra ett sida somkan användas för att editera valfir post i valfri databas (Access).
Så här långt så kan jag anropa sidan och tabellens fältnamn och postens värden skrivs ut i ett formulär.
Men när jag sedan vill kunna klicka på spara-knappen, så vill jag att posten ska uppdateras i databasen.
Jag får ett felmeddelande :

Körningsfel i Microsoft VBScript (0x800A01C2)
Fel antal argument eller felaktig egenskapstilldelning.: 'name'
/stacken/editera.asp, line 23

Rad 23 är följande : RecSet(i).name = Request.form(i+1)

Här är hela koden :

<!-- #include file="start.inc" -->    
<!-- #include file="fcode.inc" -->
<%

Dim Connect, RecSet, Visa, i, x, strContents
Dim databas, tabellnamn, id
databas=Request.querystring("databas")
tabellnamn=Request.querystring("tabellnamn")
id=Request.querystring("id")

Set Connect = Server.CreateObject("ADODB.Connection")
Connect.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath(databas) & ";" 
Visa = "SELECT * FROM "&tabellnamn&" where id="&id&";"
Set RecSet = Server.CreateObject("ADODB.Recordset")

'Funktion för att uppdatera en post----------------------------------------------------------
If request.form("action")="save" Then
	RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
	For i=1 to RecSet.fields.count-1
'		Response.write "Request.form("&i&")="&Request.form(i)&"<BR>"
'		response.write RecSet(i).name & " : " & Request.form(i+1) & "<br>"
		RecSet(i).name = Request.form(i+1)
	Next	
	RecSet.Update
RecSet.Close
End If
'---------------------------------------------------------------------------------------------

strContents="<FORM NAME='edit' ACTION='' METHOD='post'><INPUT TYPE='hidden' NAME='action' value='save'>"
strContents=strContents&"<table border='0' width='500' class='vanligText' cellspacing='2' cellpadding='5' bgcolor='#d4d4d4' align='center'><tr class='listrub'>"
strContents=strContents&"<td colspan='3' align='center' bgcolor='#999999'>Editering av information</td></tr>"
Set RecSet = Server.CreateObject("ADODB.Recordset")
	RecSet.Open Visa, Connect, adOpenStatic, adLockOptimistic
	For Each i In RecSet.Fields
		x = x + 1
		Select Case i.Type
		
		Case  0,1,2,3,5,6 strContents=strContents&"<tr class='formtxt'><td>"&i.Type&"</td><td>"&i.Name& "</td><td><INPUT TYPE='text' NAME='"&i.Name&"' size='6' value='"&i.Value&"' onKeyPress='event.returnValue = (event.keyCode >= 48) && (event.keyCode <= 57);' style='font-size: 10;'></td></tr>"
		Case  7 strContents=strContents&"<tr class='formtxt'><td>"&i.Type&"</td><td>"&i.Name& "</td><td><INPUT TYPE='text' NAME='"&i.Name&"' size='25' value='"&i.Value&"' style='font-size: 10;'></td></tr>"		
		Case  202 strContents=strContents&"<tr class='formtxt'><td>"&i.Type&"</td><td>"&i.Name& "</td><td><INPUT TYPE='text' NAME='"&i.Name&"' size='55' value='"&i.Value&"' style='font-size: 10;'></td></tr>"		
		Case  203 strContents=strContents&"<tr class='formtxt'><td>"&i.Type&"</td><td>"&i.Name& "</td><td><textarea NAME='"&i.Name&"' ROWS='10' COLS='60'>"&i.Value&"</textarea><BR>(fcode kan användas)</td></tr>"		
		
		End Select
	Next
	RecSet.Close
Set RecSet = Nothing
strContents=strContents&"<tr class='formtxt'><td></td><td></td><td><input type='submit' value='Spara' id='submit1' name='submit1' style='font-size: 10;'></td></tr></table></FORM>"
Response.write strContents
%>
<!-- #include file="slut.inc" -->
@ndersMedlem sedan juni 200032 969 inlägg
#2

Det ser ut som att du i koden försöker ändra fältets namn, inte dess värde.
Din uppdateringsloop ser konstig ut. Det ser ut som att du förutsätter att fälten i recordsetet kommer i samma ordning som de gör i form collection?
Det kan man inte vara säker på.

Jag hade istället loopat igenom form collection.

for each foo in request.form
    if not foo = "action" then recset(foo) = request.form(foo)
next

Vad gör du om det finns ett fält i tabellen som heter action? Hur ska du uppdatera det?

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