Jag har satt ihop ett enkelt och litet tidrappoteringssystem.
När man listar alla poster får man en tabell med
id - Datum - Kund - Signatur - Utfört arbete - Antal timmar
Det jag nu undrar är om man kan gör en urvalssida där man bara listar poster från en användare (att detta går vet jag) men finns det någon finurlig funktion att sumera <antal timmar> för just den signaturen (användaren) jag väljer att lista.
Ja jag blev lite förvånad när tråden flyttades men jag har mig själv att skylla då jag var otydlig vad det gällde... ;)
I alla fall
Jag har satt in den här koden
<%
'Sök användare ur tabellen tid och summera antalet timmar
Dim strSQL
strSQL = "SELECT tid.Datum, tid.Kund, tid.Antal_timmar, tid.Signature, tid.Work, " & _
"SELECT SUM(antal_timmar) FROM tid WHERE Signature = " & Request.Form("insig") & ") as SummaTimmar " & _
"FROM tid " & _
WHERE tid.Signature = " & Request.Form("insig") & ""
'Skapa en instans av objektet Recordset och hämta info
Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
objRS.Open strSQL, objConn
%>
men det blir fel...
Microsoft VBScript compilation error '800a0401'
Expected end of statement
/webrapport.asp, line 14
WHERE "tid.Signature = " & Request.Form("insig") & ""
------^
Dim Conn
Dim SQL
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\Databaser\time_report.mdb;"
'Sök användare ur tabellen tid och summera antalet timmar
SQL = "SELECT tid.Datum, tid.Kund, tid.Antal_timmar, tid.Signature, tid.Work, " & _
"(SELECT SUM(antal_timmar) FROM tid WHERE Signature = " & Request.Form("insig") & ") as SummaTimmar " & _
"FROM tid tid " & _
"WHERE tid.Signature = " & Request.Form("insig") & ""
set rs = Conn.execute(SQL)
While not rs.eof
Response.Write rs("kund") & "<br>"
rs.movenext
Wend
Min databas heter som ni ser time_report.mdb och och tabellen heter tid och fälten i databasen Räknare, Datum, Kund, Antal_timmar, Signature och Work
När i exemplet ovan antar jag att t.ex u.datum ska vara tid.Datum och så vidare...(?)
I alla fall när jag använder min kod får jag detta felet
"Microsoft JET Database Engine error '80040e10'
No value given for one or more required parameters.
Dim Conn
Dim SQL
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\Databaser\time_report.mdb;"
'Sök användare ur tabellen tid och summera antalet timmar
SQL = "SELECT tid.Datum, tid.Kund, tid.Antal_timmar, tid.Signature, tid.Work, " & _
"(SELECT SUM(antal_timmar) FROM tid WHERE Signature = " & Request.Form("insig") & ") as SummaTimmar " & _
"FROM [b]tid[/b] " & _
"WHERE tid.Signature = " & Request.Form("insig") & ""
set rs = Conn.execute(SQL)
While not rs.eof
Response.Write rs("kund") & "<br>"
rs.movenext
Wend
SELECT tid.Datum, tid.Kund, tid.Antal_timmar, tid.Signature, tid.Work, (SELECT SUM(antal_timmar) FROM tid WHERE Signature = FS) as SummaTimmar FROM tid WHERE tid.Signature = FS
Dim Conn
Dim SQL
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=E:\Databaser\time_report.mdb;"
'Sök användare ur tabellen tid och summera antalet timmar
SQL = "SELECT tid.Datum, tid.Kund, tid.Antal_timmar, tid.Signature, tid.Work, " & _
"(SELECT SUM(antal_timmar) FROM tid WHERE Signature = [b]'" & Request.Form("insig") & "'"[/b]) as SummaTimmar " & _
"FROM tid " & _
"WHERE tid.Signature = [b]'" & Request.Form("insig") & "'"[/b]
set rs = Conn.execute(SQL)
While not rs.eof
Response.Write rs("kund") & "<br>"
rs.movenext
Wend
Signature är någon slags sträng och måste därför jämföras så här: Signature = 'värde'