08. januar 2004 - 20:11Der er
13 kommentarer og 2 løsninger
Smmere tid i ASP/Access
Jeg er ved at lave et træningsprogram i ASP/Access, og i den forbindelse skal jeg bla. lave et felt hvor man indtaster træningstid altså fx. 2:35 hvordan summerer man lettest.
Databasen hedder kmdata, tabellen hedder tid og den skal regen det samlede antal timer og minutter men har indtastet.
Feltet i databasen skal være af typen tekst og alle tider skal indtastes i formatet tt:mm (f.eks. 2:35). Her er det lidt pænere uden testudskrivninger og dim'ning af gamle variabler og med lukning af diverse åbnede sager:
<% Set rs = Server.CreateObject("ADODB.RecordSet") Set Conn = Server.CreateObject("ADODB.Connection") strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("kmdata.mdb") Conn.Open strDSN
strSQL = "SELECT * FROM tid"
rs.open strSQL, conn
do while not rs.eof arrTid = split(rs("tid"),":") intTimer = CInt(arrTid(0)) intMinutter = CInt(arrTid(1)) intTotalMinutter = intTotalMinutter + (intTimer*60) + intMinutter rs.MoveNext Loop
Hvordan er måneden anført i db'en? Står der en dato eller et månednavn? Og skal brugeren kunne vælge hvilke måneder han/hun vil se, er det alle årets måneder indtil nu, alle de måneder, der er tal for i db'en, eller hvad?
-Måneden er anført i dd-mm-yyyy -Brugeren skal ikk ekunn evælge hvilken måden de vil se, men alle måneder skal listes op ved siden af hinanden (forestiller mig i en tabel) og neden under hver måden skal den samlede tid stå. -Det er jun fra jan-2004 til dec-2004
Har lavet noget tilsvarende på kilometer! Men kan ikke få det til at virke med tid....
Set rs = Server.CreateObject("ADODB.RecordSet") Set Conn = Server.CreateObject("ADODB.Connection") strDSN = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("database.mdb") Conn.Open strDSN
strSQL = "SELECT * FROM tider"
rs.open strSQL, conn
response.Write "<table><tr>"
For i=1 to 12 response.Write "<td>" & MonthName(i,true) & "</td>" Next
response.Write "</tr><tr>"
For i=1 to 12
intTotalTimer = 0 intTotalMinutter = 0
rs.MoveFirst do while not rs.eof if datepart("m",rs("dato")) = i then arrTid = split(rs("tid"),":") intTimer = CInt(arrTid(0)) intMinutter = CInt(arrTid(1)) intTotalMinutter = intTotalMinutter + (intTimer*60) + intMinutter end if rs.MoveNext Loop
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.