---
title: "Update problem"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/61099-update-problem"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Asa"
published: "2002-12-04T12:04:49.000Z"
updated: "2002-12-05T06:53:12.000Z"
replies: 15
views: 335
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/61099-update-problem"
---

# Update problem

## #1 — Asa, 2002-12-04T12:04Z

Har en databas där jag har 2 tabeller:

faktura
\-- fakturaNr (tal)
\-- fakturadatum (text)
\-- forfallodatum (text)

beskrivning
\-- id (räknare)tal
\-- fakturaNr (tal)
\-- beskrivning (Text)
\-- antal (tal)
\-- pris (text)

När jag ska ändra en faktura så skriver jag ut alla saker som finns med i den fakturan. Hämtar först fakturan och sen loopar jag ut alla beskrivningar.

Hur gör jag nu för att enkelt kunna ändra ALLT som hör till fakturan på en och samma gång?

Hoppas jag förklarar så ni förstår!

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

## #2 — crisse6, 2002-12-04T14:08Z

Hmm.... kan du inte gora en update och skapa ett rs och sedan en annan sql dar du uppdaterar beskrivningen baserat pa fakturanummer?

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

## #3 — Asa, 2002-12-04T15:48Z

Men jag måste ju veta vilket id och till vilken faktura beskrivningen tillhör. Kan finnas hu många beskrivningar som helst!

Att uppdatera fakturanr, fakturadatum och förfallodag är ju inge svårt. Jag gör det med denna kod men hur gör jag på beskrifningarna?

```
FakturaNr         = Request.Form("fanr")
Fakturadatum      = Request.Form("fad")
Forfalldatum      = Request.Form("fod")
Conn.execute("Update faktura Set FakturaNr=" & FakturaNr & ",Fakturadatum='" & Fakturadatum & "',forfallodatum='" & Forfalldatum & "' Where fakturaNr= "& Request.Querystring("fakturaNr"))
```

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

## #4 — CatZ, 2002-12-04T15:56Z

Du gör på precis samma sätt med andra tabellen, fast du behöver bara ett recordset till alltihop. 

Faktura nummer ska du aldrig uppdatera eller? Därför behöver du inte med det utan lägg det enbart som 
(( - WHERE FakturaNr = " & FakturaNr & " - ))

Vad jag vet kan man inte uppdatera båda med en "update"

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

## #5 — Asa, 2002-12-04T15:59Z

Men jag måste alltså på nåt sätt göra en For slinga när jag uppdaterar beskrivningarna? Före det räkna antal beskrivningar i den fakturan?!? Eller har jag fel?

Haru ett exempel så skulle det vara sjysst!

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

## #6 — crisse6, 2002-12-04T16:06Z

men du har ju fakturarnr i bada dina tabeller?! da kan det val knappast bli fel, och som Catz sa du lar val inte andra fakturanumret?

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

## #7 — CatZ, 2002-12-04T16:09Z

Har du fler än 1 beskrivning till varje faktura ?:

```
SQL = "SELECT COUNT(id) AS AntalBeskrivningar FROM Beskrivning WHERE fakturanr = " & FakturaNr & "
Set rs = objConnection.Execute(SQL)

Antal = rs("AntalBeskrivningar")
rs.Close
Set rs = Nothing

For i = 0 to Antal
  SQL = "UPDATE" osv
```

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

## #8 — Asa, 2002-12-04T16:10Z

Japp - kan ha flera beskrivningar! Kan ju vara massa grejjer man säljer och ska fakturera till samma kund.

Vad ska jag döpa fälten till då? I formuläret? Vill kunna ha javascriptvalidering oxå!

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

## #9 — Asa, 2002-12-04T16:17Z

Hur ska jag göra med Where ... = ....?

```
For i = 0 to Antal
     strPris             = Request.Form("pris" & i)  
     strAntal            = Request.Form("antal" & i)  
     strBeskrivning      = Request.Form("bes" & i)

     Conn.execute("Update beskrivning Set beskrivning=" & strBeskrivning & ",pris='" & strPris & "',antal=" & strAntal & " Where ...=....????
Next
```

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

## #10 — Asa, 2002-12-04T16:29Z

Som jag har nu så skriver jag ut alla värden i den inputtaggarna så här:

```
<%Set Bes=Conn.Execute("Select beskrivning From beskrivning Where Fakturanr=" & RS("fakturanr") & " Order By pris desc")
x=1
Do Until Bes.EOF%>
  &nbsp; <input type="text" name="bes<%=x%>" size="45" value="<%=Bes("beskrivning")%>"> <br>
<%x=x+1
Bes.MoveNext
Loop%>
```

På detta sätt kan jag enkelt fixa forslingan i javascriptvalideringen!

```
Set Antal=Conn.Execute("Select Count(*) As Antal From beskrivning Where fakturaNr=" & RS("fakturaNr"))%>

<script language="javaScript">
function Check() {
<%For i = 1 To Antal("antal")%>
        if (document.faktura.bes<%=i%>.value==""){
		alert("Du glömde beskrivning nr <%=i%>!");
		return false;
<%Next%>
        } 
}
</script>
```

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

## #11 — crisse6, 2002-12-04T16:40Z

where fakutarnr = querystring (fran fakturarnr tabellen's fakturanr??)

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

## #12 — Asa, 2002-12-04T17:43Z

Det går ju inte! Men vet ju då inte vilken som är vilken! Vilket ex svar som har vilket id. Med endast ett fält är det enkelt för då kan man ju göra en

**For Each**

Men i detta fall är det ju 3 fält och så ska man uppdatera förfallodatum och fakturadatum med!

Så hur gör jag?!?

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

## #13 — CatZ, 2002-12-04T21:19Z

Men i så fall uppdaterar du väl inte mer än 1 faktura åt gången ? isåfall ska det väl inte vara några problem.

Du kan väl inte låt oss säga uppdatera 4 fakturor på en gång? Det skulle ju innebära i så fall 12 st ställen på 4 fakturor i 3 olika tabeller att uppdatera?

\*suck\* För trött nu..... kanske kan hjälpa till imorgon ;)

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

## #14 — Asa, 2002-12-04T22:17Z

Nej Nej! Det som strular är ifall faktura 1 har ex 2 varor. Hoppas jag tänker rätt så ni förstår! Jag vill kunna ändra allt!

```
FAKTURA
fakturaNr---fakturadatum-------forfallodatum
2-----------2002-11-15---------2002-11-25

BESKRIVNING
id----------fakturaNr--beskrivning-------antal---------pris
28----------2----------Sko---------------1------------2000
29----------2----------Tvål---------------1------------1125
```

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

## #15 — CatZ, 2002-12-05T06:52Z

se inlägget nedan istället....

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

## #16 — CatZ, 2002-12-05T06:53Z

```
<% SQL = " SELECT faktura.*, beskrivning.* " _
& " FROM faktura " _
& " INNER JOIN beskrivning " _
& " ON faktura.fakturanr = beskrivning-fakturanr" _
& " WHERE fakturanr = " & Request.Querystring("fanr")
& " ORDER BY beskrivning.id ASC"

Set objRS = objConn.Execute(SQL)
If not rs.EOF then

fanr         = objRS("fakturaNr")
fakdat     = objRS("fakturadatum")
forfalldat = objRS("forfallodatum")
%>

<form method="post" action="update.asp?fanr=<%= fan %>">
<input name="form_fakdat" type="text" value="<%= faktdat %>"><br>
<input name="form_forfalldat" type="text" value="<%= forfalldat %>"><br>
<%
i = 0
do while not rs.eof

id = objRS("id")
beskriv = objRS("beskrivning")
antal = objRS("antal")
pris = objRS("pris")

%>
<input type="hidden" name="form_id" value="<%= id %>">
<input name="form_beskriv" type="text" value="<%= beskriv %>"><br>
<input name="form_antal" type="text" value="<%= antal %>"><br>
<input name="form_pris" type="text" value="<%= pris %>"><br>
<%
objRS.movenext
i= i + 1
loop
%>
<input type="submit">
</form>
```

Sådär någonting skulle första delen som plockar fram all information kunna se ut, lägg märke till att det enda som skiljer från dig är att jag hämtar information från två tabeller med en enkel JOIN.

Så över till nästa sak då på sidan update.asp som skulle kunna se ut ungefär som nedan:

```
<%
		SQL = "UPDATE faktura SET" _
		& " fakturadatum = #" & Request.Form("form_fakdat") & "#, " _
		& " forfallodatum = #" & Request.Form("KrNamn") & "# " _
		& " WHERE fakturaNr = " & Request.Querystring("faknr")				
		objConn.Execute SQL,,128
		
		For j = 0 to i
			SQL = "UPDATE beskrivning SET " _
			& " beskriving = '" & request.form("form_beskrivning") & "' " _
			& " antal = " & request.form("form_antal") & " " _
			& " pris = " & request.form("form_pris") & " " _
			& " WHERE fakturaNr = " & Request.Querystring("faknr") & " " _
			& " AND id = " & Request.Form("form_id") & " "
			objConn.Execute SQL,,128
		Next
%>
```

Allt detta är helt otestat, har säkert missat en massa och jag är inte världens bästa felsökare, men kanske förstår du principen bakom?

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/61099-update-problem
