---
title: "Räkna volym och energi för varje enskild datum"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/102837-räkna-volym-och-energi-för-varje-enskild-datum/page3"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "plelkes"
published: "2004-05-03T16:40:46.000Z"
updated: "2004-05-14T11:34:09.000Z"
replies: 68
views: 953
page: 3
pages: 4
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/102837-räkna-volym-och-energi-för-varje-enskild-datum"
---

# Räkna volym och energi för varje enskild datum

_Sida 3 av 4._

## #41 — PDahlen, 2004-05-05T06:58Z

Ok, då har du nog förstått rätt, men gjort det krångligt i din lista. ;)

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

## #42 — plelkes, 2004-05-05T07:36Z

Om jag nu skulle utveckla lite mera = för varje dag har jag även ngra (= ca 3) tidpunkter. Och summeringen skall ske

1. efter varje tidpunkt
2. varje dag

 
Jag har gjort lite tillägg (fet-stilt) i ditt pseudokod:
1\. Hämta data sorterat efter datum och **tid**
2\. Skapa dagvariabler för volym, energi och "dagen innan"och **”timmen innan”**
3\. Loopa recordset
4\. Kolla om den aktuella dagen är samma som "dagen innan"
5\. Om vi är på samma dag gå till 8 om inte gå till 11
**6 .Kolla om den aktuella timmen är  samma som ”timmen innan”
7\. Om vi är på samma timme gå till 8 om inte gå till 11/
**8\. Addera aktuella värden till volym och energi
9\. Skriv ut aktuell data
10\. Gå till 3
11\. Skriv ut volym och energi eftersom dessa tillhör "dagen innan"
12\. Nollställ volym och energi och sätt "dagen innan" till aktuell dag
**13\. Nollställ volym och energi och sätt ”timmen innan” till aktuell timme**
14\. Addera aktuell volym och energi
15 Skriv ut aktuell data
16\. Om fler dagar i recordset gå till 3
**17\. Om inga fler timmar skriv ut volym och energi**
18\. Inga fler dagar så skriv ut volym och energi och avsluta

Mina frågor:
har jag ngn logisk sekvens i mina ändringar?****

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

## #43 — plelkes, 2004-05-05T09:43Z

Mitt försök 

```
<%@ Language=VBScript LCID=1053%>
<HTML>
<title>Rapport</title>
<BODY>
 <%
pat = Request.Form("rapport")
Set vbalans = Server.CreateObject("ADODB.Connection")
vbalans.Provider = "Microsoft.Jet.OLEDB.4.0"
MdbFilePath = Server.MapPath("\vatskebalans\db\vbalans.mdb")
vbalans.ConnectionString = "Data Source='" & MdbFilePath & "'"
vbalans.open
strSQL = "SELECT f.FluidNamn, f.FluidID, v.Dag, v.PatID, v.Volym, v.Energi" &_
         " p.ftEnamn, p.ftFnamn, v.tidpunkt FROM (tblVetskebalans v INNER JOIN tblFluids f"&_
          " ON v.FluidID = f.FluidID) INNER JOIN tblPersonuppgifter p ON v.PatID = p.PatID" &_
          " WHERE p.PatID = "& pat &" ORDER BY v.dag" 
		  Set rs1 = vbalans.Execute (strSQL)
'formatera till svensk personnummer
Function SvPnr(txt)
      personnummer =Left(txt,6) & " - " & Right(txt,4)
  SvPnr = personnummer
End Function
Function FirstVersal(txt)
      versal = UCase(Left(txt,1)) & LCase(Right(txt, Len(txt)-1))
  FirstVersal = versal
End Function
    Response.Write SvPnr(rs1("PatID")) & "<BR>"
    Response.Write "<B>" & FirstVersal(rs1("ftEnamn")) & ", " & FirstVersal(rs1("ftFnamn")) & "</B><P><P><P>"
%>
<TABLE border=1>
  <TR>
    <TD><B>Datum</B></TD>
	<T><B>Tidpunkten</B></TD>
    <TD><B>Vätska</B></TD>
    <TD><B>Volym</B></TD>
    <TD><B>Energi</B></TD>
   </TR>
<%
dat = "" 
tp = ""
v = 0
e = 0
Do While Not rs1.EOF
	If dat <> CDate(rs1("Dag")) then
           if not dat = "" then
	        Response.Write "<TR><TD>&nbsp; </TD>"
		Response.Write "<TD>&nbsp;</TD>"
		Response.Write "<TD><B><U>Volym givet idag:</U></B></TD>"
		Response.Write "<TD>" & v & "</TD></TR>"
		Response.Write "<TR><TD>&nbsp;</TD>"
		Response.Write "<TD>&nbsp;</TD>"
		Response.Write "<TD><B><U>Givet energi</U></B></TD>"
		Response.Write "<TD>" & e & "</TD></TR>"
		end if
	If tp  <> CDate(rs1("tidpunkt")) then
	   if not tp = "" then
	      Response.Write "<TR><TD>&nbsp; </TD>"
		  Response.Write "<TD>&nbsp;</TD>"
		  Response.Write "<TD><B><U>Volym givet </U></B></TD>"
		  Response.Write "<TD>" & v & "</TD></TR>"
		  Response.Write "<TR><TD>&nbsp;</TD>"
		  Response.Write "<TD>&nbsp;</TD>"
		  Response.Write "<TD><B><U>Givet energi</U></B></TD>"
		  Response.Write "<TD>" & e & "</TD></TR>"
		 End If
	   v = cint(rs1("Volym"))
	   e = cint(rs1("Energi"))
	   dat = CDate(rs1("Dag")) 
	   tp = CDate(rs1("tidpunkt")) 
	  Response.Write "<TR><TD>" & CDate(rs1("Dag"))& "</TD>"
	  Response.Write "<TD>" & CDate(rs1("tidpunkt"))& "</TD>"
	  Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
	  Response.Write "<TD>" & rs1("Volym") & "</TD>"
	  Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
	  Else
		v = v + cint(rs1("Volym"))
		e = e + cint(rs1("Energi"))
		Response.Write "<TR><TD>&nbsp;</TD>"
		Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
		Response.Write "<TD>" & rs1("Volym") & "</TD>"
		Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
		End If
	  v = cint(rs1("Volym"))
	  e = cint(rs1("Energi"))
	  dat = CDate(rs1("Dag")) 
	  Response.Write "<TR><TD>" & CDate(rs1("Dag"))& "</TD>"
	  Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
	  Response.Write "<TD>" & rs1("Volym") & "</TD>"
	  Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
	Else
		v = v + cint(rs1("Volym"))
		e = e + cint(rs1("Energi"))
		Response.Write "<TR><TD>&nbsp;</TD>"
		Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
		Response.Write "<TD>" & rs1("Volym") & "</TD>"
		Response.Write "<TD>" & rs1("Energi") & "</TD></TR>"
	End If
rs1.MoveNext
Loop
if not tp = "" then
	      Response.Write "<TR><TD>&nbsp; </TD>"
		  Response.Write "<TD>&nbsp;</TD>"
		  Response.Write "<TD><B><U>Volym givet </U></B></TD>"
		  Response.Write "<TD>" & v & "</TD></TR>"
		  Response.Write "<TR><TD>&nbsp;</TD>"
		  Response.Write "<TD>&nbsp;</TD>"
		  Response.Write "<TD><B><U>Givet energi</U></B></TD>"
		  Response.Write "<TD>" & e & "</TD></TR>"
		 End If
if not dat = "" then
  Response.Write "<TR><TD>  </TD>"
  Response.Write "<TD> </TD>"
  Response.Write "<TD><B><U>Volym givet idag:</U></B></TD>"
  Response.Write "<TD>" & v & "</TD></TR>"
  Response.Write "<TR><TD> </TD>"
  Response.Write "<TD> </TD>"
  Response.Write "<TD><B><U>Givet energi</U></B></TD>"
  Response.Write "<TD>" & e & "</TD></TR>"
end if

vbalans.Close
Set vbalans = Nothing
%>
<BR><BR><BR>
</TABLE>

</body>
</html>
```

 Slutar i

> Microsoft JET Database Engine error '80040e14' 
> 
> Syntax error (missing operator) in query expression 'v.Energi p.ftEnamn'. 
> 
> /vatskebalans/visa_rapporten102.asp, line 16

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

## #44 — PDahlen, 2004-05-05T09:49Z

Enligt

> query expression 'v.Energi p.ftEnamn'.

så fattas det ett komma mellan dessa variabler i sql-satsen. Ser inte ut så i koden du skickat med men kolla ordentligt.

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

## #45 — plelkes, 2004-05-05T11:57Z

Torde vara ngt annat fel...
För 

> strSQL = "SELECT f.FluidNamn, f.FluidID, v.Dag, v.PatID, v.Volym, v.Energi" &\_
>          " p.ftEnamn, p.ftFnamn, v.tidpunkt FROM (tblVetskebalans v INNER JOIN tblFluids f"&\_
>           " ON v.FluidID = f.FluidID) INNER JOIN tblPersonuppgifter p ON v.PatID = p.PatID" &\_
>           " WHERE p.PatID = "& pat &" ORDER BY v.dag"

 
ser väl rätt ut??

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

## #46 — mrblonde, 2004-05-05T12:15Z

> **plelkes skrev:**
>
> Torde vara ngt annat fel...
> För 
>
> > strSQL = "SELECT f.FluidNamn, f.FluidID, v.Dag, v.PatID, v.Volym, v.Energi" &\_
> >          " p.ftEnamn, p.ftFnamn, v.tidpunkt FROM (tblVetskebalans v INNER JOIN tblFluids f"&\_
> >           " ON v.FluidID = f.FluidID) INNER JOIN tblPersonuppgifter p ON v.PatID = p.PatID" &\_
> >           " WHERE p.PatID = "& pat &" ORDER BY v.dag"
>
>  
> ser väl rätt ut??

Nej, det saknas ett komma

```
strSQL = "SELECT f.FluidNamn, f.FluidID, v.Dag, v.PatID, v.Volym, v.Energi," &_
         " p.ftEnamn, p.ftFnamn, v.tidpunkt FROM (tblVetskebalans v INNER JOIN tblFluids f"&_
          " ON v.FluidID = f.FluidID) INNER JOIN tblPersonuppgifter p ON v.PatID = p.PatID" &_
          " WHERE p.PatID = "& pat &" ORDER BY v.dag"
```

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

## #47 — plelkes, 2004-05-05T14:53Z

tack mrblonde för att du  hittade det saknade kommat..

Tyvärr så blev inte resultatet riktigt som jag önskade\*snyft\*
[NI kan själva se](http://www12.brinkster.com/vatskebalans/count.asp)  om ni kryssar i tex Elvansson

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

## #48 — PDahlen, 2004-05-05T15:03Z

Lusläs din HTML-tabell så du har lika många kolumner på varje rad till att börja med.

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

## #49 — plelkes, 2004-05-05T15:13Z

Patrik, det skall jag göra hemmifrån se´n

Men tror du att mina ändringar i koden är funkis?? 
Alltså förutom HTML??

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

## #50 — PDahlen, 2004-05-05T15:18Z

Hinner inte riktigt gå igenom din kod just nu.

Jag tror att du borde dela upp funktionaliteten lite när du bygger. Gör en sak i taget och se att det fungerar. SEN sätter du ihop allt och fixar din layout.
Försök inte göra allt på en gång.

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

## #51 — plelkes, 2004-05-05T15:24Z

Hoppas du återkommer när du har hunnit kika lite...

> **PDahlen skrev:**
>
> Jag tror att du borde dela upp funktionaliteten lite när du bygger. Gör en sak i taget och se att det fungerar. SEN sätter du ihop allt och fixar din layou

 Hur menar du?

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

## #52 — PDahlen, 2004-05-05T15:31Z

Om du vill ha ut värdena för varje timma skriv en loop som gör bara det så du ser att du får ut rätt värden.

Sen har du din tidigare loop som tar ut värdena per dag.

Sen har du din andra tidigare loop som tar ut totalvärden.

När alla tre funkar var för sig kan du börja sätta ihop dem.

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

## #53 — plelkes, 2004-05-05T15:36Z

Ok - point taken och förstått..
Jag lär behöva mer hjälp. så jag kommer med all säkerhet återkomma

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

## #54 — PDahlen, 2004-05-05T15:40Z

När det gäller din HTML-tabell så gör en dummy på hur du vill att den ska se ut i vanlig HTML.
Då ser du var alla variabler skall hamna.

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

## #55 — plelkes, 2004-05-05T17:31Z

Mitt försök till pseudokod:
1\. Hämta data sorterat efter tidpunkt
2\. Skapa variabler för volym, energi och "timmen innan"
3\. Loopa recordset
4\. Kolla om den aktuella timmen är samma som "timmen innan"
5\. Om vi är på samma timme gå till 6 om inte gå till 9
6\. Addera aktuella värden till volym och energi
7\. Skriv ut aktuell data
8\. Gå till 3
9\. Skriv ut volym och energi eftersom dessa tillhör "timmen innan"
10\. Nollställ volym och energi och sätt "timmen innan " till aktuell tid
11\. Addera aktuell volym och energi
12\. Skriv ut aktuell data
13\. Om fler timmar i recordset gå till 3
14\. Inga fler timmar så skriv ut volym och energi och avsluta.
 
Har suttit och försökt klura fram:
Som recordsettet är upplagd så är det så att:

1. en patinet har en eller flera dagar
2. varje dag kan ha en eller flera tidpunkter

 
Skulle bhöva tipps/förslag på hämtning av data skulle se ut..

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

## #56 — PDahlen, 2004-05-05T17:36Z

Tänk efter lite och gör som jag sa, ta en sak i taget. Gör en lista för att få ut totala variabler, en för dagsvariabler och en för timvariabler.
I din pseudokod ovan, var skapar du dagvariablerna?

Koden för att få ut timvariablerna är exakt samma som dagsvariablerna. Så gör dom separat och sätt sedan ihop dem när de funkar.

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

## #57 — plelkes, 2004-05-05T18:10Z

> **PDahlen skrev:**
>
> Tänk efter lite och gör som jag sa, ta en sak i taget. Gör en lista för att få ut totala variabler, en för dagsvariabler och en för timvariabler.
> I din pseudokod ovan, var skapar du dagvariablerna?

 Jag tror att jag har missuppfattat dig... Jag försökte göra som du sa och ta en sak i sänder..
Jag trodde att jag redan hade både dagsvariablerna och totalavariabler??

Totala variabeln var väl det första ajg fick fram? dvs när patientens totalt erhållna volym och energi räknas ut i slutet av tabellen..

Dagsvariablerna - var inte dessa vi höll på med igår?
Därför trodde jag att du menade att nu skulle jag få fram timvariablerna
MIn pseudokod ovan gällde bara timvariablerna..

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

## #58 — PDahlen, 2004-05-05T18:17Z

Ok, jag som missförstod.
Det enda som skiljer dagstotalen och timtotalen är att du skriver ut totalerna oftare. Kodflödet är exakt likadant. Så kopiera dagstotalkoden rakt av och ändra sedan if-frågorna så att de passar för tid.
Så är det bara att köra.

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

## #59 — plelkes, 2004-05-05T18:25Z

> \=PDahlen\]Kodflödet är exakt likadant. Så kopiera dagstotalkoden rakt av och ändra sedan if-frågorna så att de passar för tid.

 
Det var min tänkta strategi

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

## #60 — plelkes, 2004-05-08T11:29Z

Nu har jag gjrit som jag fått rådet (hoppas jag) 

1. först skrev HTML-koden för en tabell -  och det funkar bra
2. Så kopiera dagstotalkoden rakt av och ändra sedan if-frågorna så att de passar för tid.

 
Ändå blev de tinte riktigt som jag tänkt:

```
<%
tp = "" 
v = 0
e = 0
Do While Not rs1.EOF
	If tp <> CDate(rs1("tidpunkt")) then
		if not tp = "" then
			Response.Write "<TR>"
			Response.Write "<TD COLSPAN = 3 Align = right >"
			Response.Write “<B><U>Givet volym</U></B></TD>”
			Response.Write "<TD>" & v & "</TD></TR>"
			Response.Write "<TR>"
			Response.Write "<TD COLSPAN = 3 Align = right>"
			Response.Write "<B><U>Energi</U></B></TD></TD>"
			Response.Write "<TD>" & e & "</TD></TR>"
		end if
		v = cint(rs1("Volym"))
		e = cint(rs1("Energi"))
		tp = CDate(rs1("Dag")) 
		Response.Write "<TR><TD>" & CDate(rs1("tidpunkt"))& "</TD>"
		Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
		Response.Write "<TD>" & rs1("Volym") & "</TD>"
	Else
		v = v + cint(rs1("Volym"))
		e = e + cint(rs1("Energi"))
		Response.Write "<TR><TD> </TD>"
		Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
		Response.Write "<TD>" & rs1("Volym") & "</TD>"
	End If
rs1.MoveNext
Loop
if not tp = "" then
			Response.Write "<TR>"
			Response.Write "<TD COLSPAN = 3 Align = right >"
			Response.Write “<B><U>Givet volym</U></B></TD>”
			Response.Write "<TD>" & v & "</TD></TR>"
			Response.Write "<TR>"
			Response.Write "<TD COLSPAN = 3 Align = right>"
			Response.Write "<B><U>Energi</U></B></TD></TD>"
			Response.Write "<TD>" & e & "</TD></TR>"
		end if

vbalans.Close
Set vbalans = Nothing
%>
```

 

1. i själva volym  kolumnen skrivs inga siffror ut
2. "koden" hittar inte att vi befinner oss i samma timme...

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

---

Tråden på webben: https://www.webforum.nu/amne/asp/102837-räkna-volym-och-energi-för-varje-enskild-datum/page3  
Föregående sida: https://www.webforum.nu/amne/asp/102837-räkna-volym-och-energi-för-varje-enskild-datum/page2.md  
Nästa sida: https://www.webforum.nu/amne/asp/102837-räkna-volym-och-energi-för-varje-enskild-datum/page4.md
