K Känning Medlem sedan jan. 2003 252 inlägg Frågan 6 feb. 2003 23:28 #1 Hej
Jag är lite nybörjare med detta men jag har pillat ihop en liten sida som visar alla spel som vi har lagt. Det denna sidan göra är att räkna ut vad vi har i kassan. Men det känns väldigt omständigt, kan någon hjälpa mig att kapa av lite kod här?
<html>
<head>
<title>Spelsida</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("spel.mdb")&";"
SQL = "select * from spel"
sql = sql & " order by ID"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
vinst = 0
Do Until RS.EOF
If not IsNull(rs("vinst")) Then
vinst = vinst + Cdbl(rs("vinst"))
End if
rs.MoveNext
Loop
rs.Close
Conn.Close
Set conn = Server.CreateObject("ADODB.Connection")
Conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("spel.mdb")&";"
SQL = "select * from spel"
sql = sql & " order by ID"
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open sql, conn, 3, 3
insats = 0
Do Until RS.EOF
If not IsNull(rs("insats")) Then
insats = insats + Cdbl(rs("insats"))
End if
rs.MoveNext
Loop
kassa = 0
kassa = vinst - insats
rs.Close
Conn.Close
%>
<table border="0" cellpadding="2" cellspacing="2" width="80%">
<tr>
<td valign="top">
<%
Response.Write "Kassa: " & kassa & "<br>"
Response.Write "Lagt spel för: " & insats & "<br>"
Response.Write "Vunna spel: " & vinst & "<br>"
%>
</td>
</tr>
</table>
</body>
</html>
Palle Medlem sedan apr. 2000 3 174 inlägg Så här kanske: :)
[RED][FONT=Arial][1]<html>
<head>
<title>Spelsida</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
intVinst = 0
intInsats = 0
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("spel.mdb")
Set RecSet = Conn.Execute("SELECT Sum(vinst) AS rsVinst, SUM(insats) AS rsInsats FROM spel")
intVinst = RecSet("rsVinst")
intInsats = RecSet("rsInsats")
RecSet.Close : Set RecSet = Nothing
Conn.Close : Set Conn = Nothing
intKassa = Int(intVinst-intInsats)
%>
<table border="0" cellpadding="2" cellspacing="2" width="80%">
<tr>
<td valign="top"><%= "Kassa: "& intKassa &"<br>Lagt spel för: "& intInsats &"<br>Vunna spel: "& intVinst %></td>
</tr>
</table>
</body>
</html>[/1][/FONT][/RED]
fast du skall nog ha med en If sats som kollar om RecSet.Eof eller inte.
Palle Medlem sedan apr. 2000 3 174 inlägg
Nickemannen skrev:
fast du skall nog ha med en If sats som kollar om RecSet.Eof eller inte.
Nope, behövs inte här eftersom noll returneras även om
databasen är tom då noll är standardvärdet för Tal . :)
L LarsG Medlem sedan dec. 2000 12 464 inlägg En sum på ett tomt resultat blir null, inte noll.
Palle Medlem sedan apr. 2000 3 174 inlägg
LarsG skrev:
En sum på ett tomt resultat blir null, inte noll.
Ett u eller o hit eller dit.. ;)
LarsG har givetvis rätt, Palle har fel. :)
..så för att få ett snyggt resultat måste man alltså tilldela variablerna
intVinst och intInsats noll -värden då summeringen returnerar null .
ex.
[RED]If IsNull(intVinst) Then intVinst = 0
If IsNull(intInsats) Then intInsats = 0[/RED]
K Känning Medlem sedan jan. 2003 252 inlägg Vad gör man utan killar som er?? :)