---
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/page4"
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: 4
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 4 av 4._

## #61 — plelkes, 2004-05-08T11:34Z

punkt a är löst

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

## #62 — plelkes, 2004-05-09T11:10Z

punkt b är löst - jag skrev fel rs1 på rad..

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

## #63 — plelkes, 2004-05-09T15:26Z

Nu när jag har fått det funka så här långt ;)  har jag skrivit en ny pseudokod:Pseudokoden2 

1\. Hämta data sorterat efter datum, och tid
2\. Skapa variabler för 
vd = dygnsvolym
de = dygnsenergi
                 "dagen innan"
vt = timmsvolym
et = timmsenergi
”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 6 om inte gå till 16
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 vt och et
9\.  Skriv ut : namn, volym
10\. Gå till 3
11\. skriv ut vt och et eftersom dessa tillhör ”timmen innan”
12\. Nollställ vt och et och sätt "timmen innan" till aktuell tid
13\. Skriv ut: klockslag, namn, volym
14\. Om fler timmar i recordset gå till 3
15\. Inga fler timmar skriv ut: vt och et
16\. Skriv ut vd och ed eftersom dessa tillhör "dagen innan"
17\. Nollställ vd och ed och sätt "dagen innan" till aktuell dag
18\. Addera aktuell vd och ed
19\. Skriv ut: dat, klockslag, namn, volym
20\. Om fler dagar i recordset gå till 3
21\. Inga fler dagar så skriv ut volym och energi och avsluta.

Några kommentarer till ovanstående??

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

## #64 — plelkes, 2004-05-10T08:44Z

Stärkt av framgångarna har jag försökt koppla ihop det hela

```
<%@ 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>
<TH>Datum</TH>
<TH>Klockslag</TH>
<TH>Namn</TH>
<TH>Volym</TH>
</TR>
<%
dat = ""
tp = "" 
vt = 0
et = 0
vd = 0
de = 0
Do While Not rs1.EOF
    If dat <> CDate(rs1("Dag")) then
	If tp <> CDate(rs1("tidpunkt")) then
		if not tp = "" then
			Response.Write "<TR>"
			Response.Write "<TD COLSPAN = 4 Align = right >"
			Response.Write "<B><U>Givet volym</U></B></TD>"
			Response.Write "<TD>" & vt & "</TD></TR>"
			Response.Write "<TR>"
			Response.Write "<TD COLSPAN = 4 Align = right>"
			Response.Write "<B><U>Energi</U></B></TD></TD>"
			Response.Write "<TD>" & et & "</TD></TR>"
		end if
		If not dat = "" then
Response.Write "<TR>"
			Response.Write "<TD COLSPAN = 5 Align = right >"
			Response.Write "<B><U>Under dygnet givet volym</U></B></TD>"
			Response.Write "<TD>" & vt & "</TD></TR>"
			Response.Write "<TR>"
			Response.Write "<TD COLSPAN = 5 Align = right>"
			Response.Write "<B><U>Energi givet under dygnet</U></B></TD></TD>"
			Response.Write "<TD>" & de & "</TD></TR>"
end if

		dat = CDate(rs1("Dag"))
		vt = cint(rs1("Volym"))
		et = cint(rs1("Energi"))
		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></TR>"
	Else
		vt = vt + cint(rs1("Volym"))
		et = et + cint(rs1("Energi"))
		Response.Write "<TR><TD>&nbsp;</TD>"
        Response.Write"<TD>&nbsp;</TD>"
		Response.Write "<TD>" & rs1("FluidNamn") & "</TD>"
		Response.Write "<TD>" & rs1("Volym") & "</TD></TR>"
	End If
	Else
	vd = vt + vt
	de = de + de
rs1.MoveNext
Loop
if not tp = "" then
			Response.Write "<TR>"
			Response.Write "<TD COLSPAN = 4 Align = right >"
			Response.Write "<B><U>Givet volym</U></B></TD>"
			Response.Write "<TD>" & vt & "</TD></TR>"
			Response.Write "<TR>"
			Response.Write "<TD COLSPAN = 4 Align = right>"
			Response.Write "<B><U>Energi</U></B></TD></TD>"
			Response.Write "<TD>" & et & "</TD></TR>"
		end if
If not dat = "" then
Response.Write "<TR>"
			Response.Write "<TD COLSPAN = 5 Align = right >"
			Response.Write "<B><U>Under dygnet givet volym</U></B></TD>"
			Response.Write "<TD>" & vt & "</TD></TR>"
			Response.Write "<TR>"
			Response.Write "<TD COLSPAN = 5 Align = right>"
			Response.Write "<B><U>Energi givet under dygnet</U></B></TD></TD>"
			Response.Write "<TD>" & de & "</TD></TR>"
end if
vbalans.Close
Set vbalans = Nothing
%>
<BR><BR><BR>
</TABLE>

</body>
</html>
```

 får dock fel:

> Microsoft VBScript compilation error '800a040e' 
> 
> 'loop' without 'do' 
> 
> /vatskebalans/visa_rapporten102.asp, line 87 
> 
> Loop
> ^

 Mend et h ade jag väl inte förrut heller?
Har ju inte tagit bort ngt utan bara lagt till
Rad 87: är bara loop

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

## #65 — plelkes, 2004-05-10T12:32Z

jag glömde ett end if...
Men det finns även fel i mitt sätt att tänka:
1) Får felutskrift

> Microsoft VBScript runtime error '800a005e' 
> Invalid use of Null: 'CDate' 
> 
> /vatskebalans/visa_rapporten102.asp, line 45

 rad 45

```
If tp <> CDate(rs1("tidpunkt")) then
```

2) om ni [klickar i Elvansson](http://www12.brinkster.com/vatskebalans/count.asp)  ser ni:
a) För 040321 skall det finnas flera poster ( 4 poster för kl 00:00)
b) för 040603 skall det finnass:2psoter 14:42, 1 post kl 00:00 och 1post kl 14:20
c) energi givet under dygnet adderas inte ihop

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

## #66 — plelkes, 2004-05-11T10:45Z

Ngn av er kära wf som har förslag, idéer?

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

## #67 — plelkes, 2004-05-14T05:23Z

snälla, jag hittar inte felet - please hjälp mig\*snyft\*

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

## #68 — @nders, 2004-05-14T06:12Z

1) Du får inte göra CDate() på ett värde som är null. Du får kontrollera det innan du gör CDate(). Du kan använda funktionen IsDate().

De andra delarna hinner jag inte sätta mig in i dessvärre.

mvh

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

## #69 — plelkes, 2004-05-14T11:34Z

tack @nders för detta iaf

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

---

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