---
title: "uppdatera en tabell med loop"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/92883-uppdatera-en-tabell-med-loop"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "rollo"
published: "2003-12-17T07:13:05.000Z"
updated: "2005-08-14T19:06:41.000Z"
replies: 4
views: 266
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/92883-uppdatera-en-tabell-med-loop"
---

# uppdatera en tabell med loop

## #1 — rollo, 2003-12-17T07:13Z

Hej!

Jag håller på att flytta om i strukturen på min sida. Tanken var att då göra en sida där all information visas och där jag kan ändra värdet på variabeln som styr tillhörigheten.

Tanken var att köra en loop över UPDATE satsen, men jag får det inte att funka!

Jag har sökt efter lösningar här, men inte lyckats med dem. SQL-strängen blir fel, UPDATE db_i SET t_id = '1, 2, 3, 4, 5, 6' WHERE id =846, 835, 807, 788, 528, 511, den delar inte upp värdena i formen. 

Så här ser sidan för visning och fält ut

```
		<%
			a = ("bgcolor=ffffff")
			b = ("bgcolor=efefef")
			c = a
		%>  							
      	<% i = 1 %>
		<% Do until a6.EOF
		tmp_t_id	= a6("t_id")
		SQL = " select * from db_h where id = " & tmp_t_id
		Set DataConn = Server.CreateObject("ADODB.Connection")
		DataConn.Open Application("koppling")
		Set cmdTemp = Server.CreateObject("ADODB.Command")
		Set a11 = Server.CreateObject("ADODB.Recordset")
		cmdTemp.CommandText = SQL
		Set cmdTemp.ActiveConnection = DataConn
		a11.Open cmdTemp, , 1, 1		
		i = i + 1 
		%>
		<%i = i + 1%>
        <tr><td colspan="2" <%=c%>>
        <font face="Verdana,arial" size="1">
        <b><%= a6("falt01")%> --- <%=a6("id")%></b>
        </td></tr>
        <tr><td colspan="2" <%=c%>>
        <font face="Verdana,arial" size="1">
	        <%
	        rub = a6("text01")
			maxLength = 75
			if len(rub) > maxLength then
			response.write left(rub,maxLength) & "..."
			else
			response.write rub
			end if
			%>
		<br>
        <i>(<%=a6("falt03")%>,   <%=a11("avd")%>) -  <%=a6("falt04")%> &nbsp;<%= a6("falt05")%></i>
		</td></tr>
        <tr><td colspan="2" height="20" <%=c%>>
		<INPUT type="text" id=text1 name=t_id_n maxlength="3" size="5">
		<INPUT type="text" id=text1 name=id maxlength="3" size="5" value="<%=a6("id")%>">
		<br>
		</td></tr>
		<tr><td colspan="2" bgcolor="000000"></td></tr>
 	  			<%if (c = a) then %>
					<% c = b %>
				<%else%>
					<% c = a%>
				<%end if%>         
    <%
	a6.MoveNext
	Loop	
	%>
```

Update sidan ser ut så här

```
	temp_t_id			   = request.Form("t_id_n")
	temp_id	   				= request.Form("id")

	For Each Item In Request.Form

	SQL = "UPDATE db_i SET t_id = '"& temp_t_id&"' WHERE id ="& temp_id
		'Set DataConn = Server.CreateObject("ADODB.Connection")
	'DataConn.Open Application("koppling")
    'Set cmdTemp = Server.CreateObject("ADODB.Command")
    'Set a6 = Server.CreateObject("ADODB.Recordset")
	'cmdTemp.CommandText = SQL
'    Set cmdTemp.ActiveConnection = DataConn
    'a6.Open cmdTemp, , 1, 1
	
response.write(sql)
response.write("<br>")

	Next
```

tackar!

rollo

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

## #2 — OveRRidE, 2003-12-17T08:25Z

```
idArray = split(request.form("t_id_n"))
idArray2 = split(request.form("id"))

for iLoop = lbound(idArray) to ubound(idArray)
   sql = "UPDATE db_i SET t_id = '" & idArray(iLoop) & "' WHERE id = " & idArray2(iLoop)
   'conn.execute(sql),,128
next

Erase idArray
Erase idArray2
```

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

## #3 — rollo, 2003-12-17T09:53Z

:birp  :birp  :birp 

Det funkade skitbra! Tack OveRRide!
Jag var dock tvungen att modifera lite, då kommatecknet från strängen kom med!

Lägger koden nedan om någon skulle behöva samma sak

```
idArray = split(request.form("t_id_n"))

idArray2 = split(request.form("id"))
i = 0
for iLoop = lbound(idArray) to ubound(idArray)

if i = ubound(idArray) then
   varde = left(idArray(iLoop),len(idArray(iLoop)-1))
   sql = "UPDATE db_i SET t_id = '" & varde & "' WHERE id = " & idArray2(iLoop)
else
   varde = left(idArray(iLoop),len(idArray(iLoop)-1))
   varde_id = left(idArray2(iLoop),len(idArray2(iLoop)-1))
   sql = "UPDATE db_i SET t_id = '" & varde & "' WHERE id = " & varde_id
end if

   
   Set DataConn = Server.CreateObject("ADODB.Connection")
	DataConn.Open Application("koppling")
    Set cmdTemp = Server.CreateObject("ADODB.Command")
    Set a6 = Server.CreateObject("ADODB.Recordset")
	cmdTemp.CommandText = SQL
    Set cmdTemp.ActiveConnection = DataConn
    a6.Open cmdTemp, , 1, 1
   
   
   
i = i + 1 
next

Erase idArray
Erase idArray2
```

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

## #4 — OveRRidE, 2003-12-17T09:55Z

:)

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

## #5 — MickeA.com, 2005-08-14T19:06Z

Nu väcker jag en tråd som är gammal som gatan, men måste lösa det här.
Jag måste (vill) lösa en grejj på samma sätt som du ovan, men får inte till det alls.
Skillnaden är att jag har fyra formulärsfält, som jag provat lägga in, men utan framgång.
Har även provat att köra koden ovan rakt av, med bara två fält, men får då ett felmess:

```
Inkompatibla typer: 'idArray(...)'
```

på raden:

```
 varde = left(idArray(iLoop),len(idArray(iLoop)-1))
```

Vad gör jag för fel?

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/92883-uppdatera-en-tabell-med-loop
