---
title: "Generell editering av post"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/111316-generell-editering-av-post"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "wazid"
published: "2004-09-10T21:23:56.000Z"
updated: "2004-09-11T07:01:56.000Z"
replies: 1
views: 165
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/111316-generell-editering-av-post"
---

# Generell editering av post

## #1 — wazid, 2004-09-10T21:23Z

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" -->
```

Permalänk: https://www.webforum.nu/p/111316

## #2 — @nders, 2004-09-11T07:01Z

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?

Permalänk: https://www.webforum.nu/p/1435039

---

Tråden på webben: https://www.webforum.nu/amne/asp/111316-generell-editering-av-post
