---
title: "problem med uppdatering"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/6824-problem-med-uppdatering/page2"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "erka"
published: "2000-10-04T15:25:00.000Z"
updated: "2000-10-08T18:14:00.000Z"
replies: 38
views: 619
page: 2
pages: 2
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/6824-problem-med-uppdatering"
---

# problem med uppdatering

_Sida 2 av 2._

## #21 — @nders, 2000-10-06T13:48Z

angående ditt sista inlägg med adress emission så är det för att du glömt en avslutande apostrof runt id.

så här ska det se ut:

```
SQLStmt="UPDATE LISTAN SET namn='" & namnarr(i) &"' WHERE Id='" & idarr(i) & "'"
```

mvh

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

## #22 — erka, 2000-10-06T13:50Z

Anders: Hmm hur menar du då ? ja den är kommabaserad tror jag eftersom först gör jag en 

på andravideo.asp

```
<%
dim connect, art
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("../db/video.mdb")
Connect.Open DSNtemp
SQLStmt = "SELECT * FROM LISTAN"
Set RS = Connect.Execute(SQLStmt)
%> 

<form name="film" method="post" action="andravideo_app.asp">
  <p><font face="Verdana, Arial, Helvetica, sans-serif" size="1"> <% Do until RS.EOF %> 
    <input type="text" name="id2" value="<%=RS("id")%>" maxlength="3" size="2">
    . 
    <input type="text" name="namn2" value="<%=RS("namn")%>">
    <br>
    <%
RS.MoveNext
Loop
RS.Close
%>
```

och på den app.asp sidan kommer denna kod

```
<%Dim conntemp, DSNtemp,objconn, connect, namnarr,idarr
Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("../db/video.mdb")
Connect.Open DSNtemp

namnarr=split(request.form("namn2"),",")
idarr=split(request.form("id2"),",")
for i=0 to ubound(namnarr)
SQLStmt="UPDATE LISTAN SET namn='" & namnarr(i) & "' WHERE Id= '" & idarr(i) & "'"
Connect.Execute(SQLStmt)
Next

%>
```

hur ska jag göra för att göra så som du skrev. jag är rätt kass på kolla med if sattser..=) tack anders

\[Redigerat av erka den 06 okt 2000\]

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

## #23 — erka, 2000-10-06T13:52Z

Anders - jo så hade jag oxå först, men sen blev jag förvirrad att jag hade missat någe skummt i asp eftersom emission nästan aldrig har fel..=)

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

## #24 — @nders, 2000-10-06T13:56Z

hinner tyvärr inte kolla på det nu, jag måste hinna med ett plan hem till kära arlanda, men jag ska försöka kika på't ikväll, ok?

om inte någon annan hinner före förstås... ;)

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

## #25 — erka, 2000-10-06T18:18Z

Anders - Vore skitsnällt ! skulle verkligen uppskatta det.

Sen undrar jag vad följande gör exakt

for 1=0 to unbound(namnarr)

??

tack på förhand

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

## #26 — erka, 2000-10-06T18:39Z

tror det är något med denna del som knasar upp det

```
namnarr=split(request.form("namn2"),",")
idarr=split(request.form("id2"),",")
for i=0 to ubound(namnarr)
SQLStmt="UPDATE LISTAN SET namn='" & namnarr(i) & "' WHERE Id= '" & idarr(i) & "'"
Connect.Execute(SQLStmt)
Next
```

Jag får felmedelandet felaktig matrisindex: "i"

Det verkar lite konstigt att anropa den så här 
\[kod}
for i=0 to ubound(namnarr)
SQLStmt="UPDATE LISTAN SET namn='" & namnarr(i) & "' WHERE Id= '" & idarr(i) & "'"

idarr(i), vad betyder det, det står ju inte med i for i=0 to unbound (namnarr), sen idarr(i) i koden. Någon ting är väldans konstigt.. Någon

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

## #27 — @nders, 2000-10-07T08:44Z

> idarr(i), vad betyder det, det står ju inte med i for i=0 to unbound (namnarr), sen idarr(i) i koden.

idarr är en array som innehåller alla id'n som skall uppdateras, och namnarr innehåller alla namnen som skall in i tabellen. dessa arrayer bör ju vara lika långa, så det är inga konstigheter att du anropar både namnarr och idarr i koden, det måste du göra. men man måste då vara säker på att båda arrayerna har lika många giltiga index...

**ubound** heter funktionen som plockar fram hur många positioner som finns i din array.

för att detta överhuvudtaget skall fungera så måste man vara säker på att id har samma position i idarr, som namnet i namnarr. annars blir det ju galet.

jag hade inte gjort på det sätt du har gjort, utan jag hade nog (förmodligen) kört en uppdatering i taget, fast nu förstår jag å andra sidan inte syftet med uppdateringen. om jag vore du så hade jag kollat igenom arrayerna du skapar med split(), skrivit ut alla sql-frågor istället för att göra en execute på dem.

och vad händer om du gör så här istället:

```
for i=0 to ubound(namnarr)-1
```

?

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

## #28 — erka, 2000-10-07T11:57Z

Anders: Får fortfarande felmedelandet

```
Feltyp:
Körningsfel i Microsoft VBScript (0x800A0009)
Felaktigt matrisindex: 'i'
```

Förstod inte hur du menade riktigt innan, lite kod skulle inte skada..Tack på förhand.. Annars kan man ju göra så att man fyller på databasen och lägger till en månadssiffra för varje ny sak man lägger in. Sen tar man bara ut de första ur databasen med högsta nummret eller någe sånnt. Men jag vill lära mig på detta sätt oxå. Jag vill slippa klicka massa gånger..Tänkte att det vore smidigt att uppdatera alla på en gång..

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

## #29 — erka, 2000-10-07T11:58Z

Jag undrade vad for i=0 to betydde ?

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

## #30 — @nders, 2000-10-07T12:25Z

for i = 0 to .... är ett sätt att få en viss programdel utförd ett antal gånger.

i det här fallet skall koden i for-loopen utföras lika många gånger som du har platser i din array namnarr.

kan du försöka förklara exakt vad det är du vill få ut av det hela, det är betydligt enklare att förstå, och kanske hitta ett bättre sätt att utföra uppgiften?

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

## #31 — erka, 2000-10-07T12:34Z

Så här är det. Jag har en databas med filmer i. Två tabeller, en med rescensioner som heter RESC och en tabell som heter LISTAN som är aktuell i detta fall..

Där finns det 10 stycken namn på filmtittlar som är min favorittopp just nu. Jag har två fält. ID och NAMN (båda är text), id är numrerat 1-10 och tänkte användas som placering på listan.

Varje vecka eller 2 ggr i månaden ska jag uppdatera dessa och då tänkte jag att man bara skulle kunna uppdatera namnet för id kommer ju alltid finnas kvar (1-10 då).

Jag tänkte att man på första sidan skulle ta ut alla värden ur namn och id i 2 textboxar på varje rad. Sätta de på initialvalue filmtitel och id och sedan loppa som jag har gjort. Så när man ska ändra behöver man bara ändra namnen i de tip texboxarna och trycka på submitt så ändras sig bara texten där och inte id. 

Är det klarare nu eller är jag för förvirrad..??

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

## #32 — erka, 2000-10-07T13:18Z

Du skrev

> for i = 0 to .... är ett sätt att få en viss programdel utförd ett antal gånger.
> i det här fallet skall koden i for-loopen utföras lika många gånger som du har platser i din array namnarr.

Måste in då id oxå göras så med ? för id måste ju oxå splittas upp ?

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

## #33 — erka, 2000-10-07T16:19Z

Varför har massa inlägg försvunnit ??

Någon som vet det. Anyway, Anders:

Jag har en databas med 2 tabeller, listan och filmer. Filmer har inget med denna att göra utan det är Listan. Listan besår av två kollummer, id och namn (båda är text).

Det är till en lista som har placeringar 1-10, id fälten är således numrerade 1-10. Dessa sak alltid vara 1-10 och jag är ute efter att bara uppdatera namnen, inte id:na (placeringen). Ettan kommer ju alltid att vara en etta osv.

Jag har tänkt att plocka ut dem med textboxar på en starsida, 2 på varje rad, en med id och med namn. SÅ att man då ser vilken placering (id) de filmer man skriver in får. Jag loopar igenom och får då upp 10 rader, placeringarna 1-10. (sätter textboxen på initvalue).

Sen är det bara att ändra titlarna på filmerna om låt oss säga, nr 8 har slagits ut på listan, eller om några har bytt placeringar med varandra.

Är det något mer som är oklar ?

mycket tacksam som sagt..

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

## #34 — erka, 2000-10-08T16:47Z

Finns det något annat sätt om man ska föra in tex. 10 stycken nya värden i en tabell och man skriver in dem i textboxar ? måste man döpa alla textboxar olika och request.form på alla ?

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

## #35 — @nders, 2000-10-08T16:50Z

måste man döpa alla textboxar olika och request.form på alla ?

så hade jag absolut gjort.

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

## #36 — erka, 2000-10-08T17:17Z

Hmm ahh det kanske är enklast. Men nu blir det väldigt mycket kod, blir inte det segt med denna kod..??

```
<%Dim Connect, conntemp, DSNtemp

Set Connect=server.CreateObject("adodb.connection")
DSNtemp="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSNtemp=dsntemp & "DBQ=" & server.mappath("../db/video.mdb")
Connect.Open DSNtemp

dim namn1, namn2, namn3, namn4, namn5, namn6, namn7, namn8, namn9, namn10

namn1=request.form("namn1")
namn2=request.form("namn2")
namn3=request.form("namn3")
namn4=request.form("namn4")
namn5=request.form("namn5")
namn6=request.form("namn6")
namn7=request.form("namn7")
namn8=request.form("namn8")
namn9=request.form("namn9")
namn10=request.form("namn10")

SQLStmt1 = "UPDATE LISTAN SET namn= '" & namn1 & "' WHERE Id='"& 1 & "'"
SQLStmt2 = "UPDATE LISTAN SET namn= '" & namn2 & "' WHERE Id='"& 2 & "'"
SQLStmt3 = "UPDATE LISTAN SET namn= '" & namn3 & "' WHERE Id='"& 3 & "'"
SQLStmt4 = "UPDATE LISTAN SET namn= '" & namn4 & "' WHERE Id='"& 4 & "'"
SQLStmt5 = "UPDATE LISTAN SET namn= '" & namn5 & "' WHERE Id='"& 5 & "'"
SQLStmt6 = "UPDATE LISTAN SET namn= '" & namn6 & "' WHERE Id='"& 6 & "'"
SQLStmt7 = "UPDATE LISTAN SET namn= '" & namn7 & "' WHERE Id='"& 7 & "'"
SQLStmt8 = "UPDATE LISTAN SET namn= '" & namn8 & "' WHERE Id='"& 8 & "'"
SQLStmt9 = "UPDATE LISTAN SET namn= '" & namn9 & "' WHERE Id='"& 9 & "'"
SQLStmt10 = "UPDATE LISTAN SET namn= '" & namn10 & "' WHERE Id='"& 10 & "'"

Connect.Execute(SQLStmt1)
Connect.Execute(SQLStmt2)
Connect.Execute(SQLStmt3)
Connect.Execute(SQLStmt4)
Connect.Execute(SQLStmt5)
Connect.Execute(SQLStmt6)
Connect.Execute(SQLStmt7)
Connect.Execute(SQLStmt8)
Connect.Execute(SQLStmt9)
Connect.Execute(SQLStmt10)

Connect.close
set Connect=nothing

%>
```

anders, tack för din hjälp! snällt

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

## #37 — @nders, 2000-10-08T17:33Z

det blir nog inte segare än dina första försök om du hade fått dem att funka... ;)

men jag förstår inte varför du skriver:

```
...WHERE Id='"& 1 & "'"
```

varför inte:

```
...WHERE Id='1'"
```

 ?

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

## #38 — erka, 2000-10-08T17:48Z

miss av mig..;) Nu slår det mig ännu mer att det kanske är bättre att baka sina kakor själv än att gå 2 km till farmor för att äta hennes. Inte alltid det krångligaste som är bäst..=)

\[Redigerat av erka den 08 okt 2000\]

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

## #39 — @nders, 2000-10-08T18:14Z

japp, baka **alltid** dina egna kakor, men **låna** gärna socker av grannen om ditt är slut. ;)

fattaru? :)

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/6824-problem-med-uppdatering/page2  
Föregående sida: https://www.webforum.nu/amne/asp/6824-problem-med-uppdatering.md
