I once had to do an excel project for reporting from an RSV32 system, but the users did not have access to the RSV server.
A simple way is to log the data required to an odbc database.
open up an excel sheet, Select say sheet 3 , create a macro then get external data from the menu, create a query & select the format i.e. date/time between dates for example, run the query stop the macro, goto vba convert the macro to vb, you can then modify the query to suit & return the data to excel, you can insert a variable inplace of the dates so a date selector in the form of mscalendar will select the dates required, then format the data in excel as required
The last one I did fetched line data from the production lines i.e. pack counts efficiency etc. this way all could view the data at anytime. just create an excel template for them.
an example is below
' Macro1 Macro
' Macro recorded 28/05/2009 by len
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=MyScada;UID=MyDatabase;Trusted_Connection=Yes;APP=Microsoft® Query;WSID=LEN_HOME;DATABASE=MyScada;" _
, Destination:=Range("A1"))
.CommandText = Array( _
"SELECT FIXALARMS.ALM_TAGNAME, FIXALARMS.ALM_TAGDESC, FIXALARMS.ALM_VALUE, FIXALARMS.ALM_DESCR, FIXALARMS.ALM_ALMAREA, FIXALARMS.ALM_OPNAME, FIXALARMS.ALM_OPFULLNAME, FIXALARMS.ALM_DATELAST, FIXALARMS." _
, _
"ALM_TIMELAST, FIXALARMS.ALM_DTLAST" & Chr(13) & "" & Chr(10) & "FROM BCHScada.dbo.FIXALARMS FIXALARMS" & Chr(13) & "" & Chr(10) & "WHERE (FIXALARMS.ALM_DATELAST>'30/07/06' And FIXALARMS.ALM_DATELAST<'25/10/06')" & Chr(13) & "" & Chr(10) & "ORDER BY FIXALARMS.ALM_TAGNAME" _
)
.Name = "Query from MyScada"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
End Sub