Newsgroup: it.comp.lang.visual-basic
Titolo: Data Report V6 somma HH.MM

Ciao a tutti ,
richiamando da un database  dei campi di cui uno  in formato Ora
breve
( nella macro  il campo è Tempo)
vorrei ottenere la somma di tutti campi della query  in un data
report , utilizzando  rptfunction per avere i totale dei campi
Il tutto funziona  solo per i campi numerici , invece per il  campo
in
formato  Ora breve (Tempo) ottengo questo errore :
Tipo dati non corrsipondente nell'oggetto Function "Function1"
Ovvaimente ho settato il  datafield con il campo Tempo e il
datafornat
in Ora
Putroppo in rete non ho trovato alcun tipo di segnalazione
significativa per rilsovere il problema.
C'è qualcuno che mi può aiutare  ?
Ringrazio.
Luca
Questa è la macro che stò utilizzando :
Private Sub Stampa()
Dim db_file As String
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sum As Variant
db_file = App.Path & "\Rapporto.mdb"
Set conn = New ADODB.Connection
    conn.ConnectionString = _
        "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & db_file & ";" & _
        "Persist Security Info=False"
    conn.Open
Set rs = conn.Execute("SELECT
Tempo,Data,Libri,Opuscoli,Riviste,Visite,Studi,Note,Scaricato from
Archivio order by Data ")
Set DataReport1.DataSource = rs
DataReport1.WindowState = vbMaximized
DataReport1.Show vbModal
rs.Close
conn.Close
End Sub

 C'ï¿œ qualcuno che mi puï¿œ aiutare  ?
Se esistesse, nelle conoscenze umane, il concetto di somma di orari, 
potremmo aiutarti.
Ma un orario ï¿œ un orario, non ha una dimensione, non ï¿œ sommabile.
Quello che ï¿œ sommabile ï¿œ un periodo, ma un periodo si memorizza come 
numerico, non come orario.
Ad esempio, puoi dire che un periodo vale 10 minuti, un altro periodo 
vale 30 minuti, e la loro somma vale 40 minuti.
Ma sommare mezzogiorno a mezzanotte, proprio non riesco a concepirlo...
Alberto

 Ma sommare mezzogiorno a mezzanotte, proprio non riesco a concepirlo...
Si pu� sottrarre per� :)
Comunque i time solitamente sono la parte decimale di un numero, uno pu�
vedere di sommarli come numero e poi convertirli in Time per mostrarli.
Comunque la SUM (time) di norma funziona bene nei DB.

 vedere di sommarli come numero e poi convertirli in Time per mostrarli.
Sono rappresentazioni umanizzate di un numero che rappresenta un 
periodo rispetto ad un punto zero predefinito.
Quindi uno potrebbe usarne la conversione implicita in numerico, e 
sommarli.
Basta che sia consapevole che sta sommando due periodi che partono da 
un punto zero non deciso dal progettista.
Alberto

 - Mostra testo citato -
Salve  Alberto, intanto ti ringrazio per  il tuo  gentile intervento
ma scusami ,  la tua gentile affermazione
è infondata , un orario è sommabile e come !
Vedi con la macro  macro in calce  ottengo esattamente nel report la
somma  totale delle ore  in una textbox con dataformat settata ad Ora
Però non riesco ad avere lo stesso risultato nell'altra macro quando
il Campo colonna TEMPO viene richiamato con gli altri campi e  poi
nelle
varie  rptfunction di cui anche quella  SUM("Tempo") , dove ottengo
l'errore segnalato
Questo è quello che stò cercando di capire perchè non funziona.
Grazie , comunque e spero che qualcuno mi possa aiutare !!
Luca
Private Sub Stampa2()
Dim db_file As String
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset
Dim sum As Variant
db_file = App.Path & "\Rapporto.mdb"
Set conn = New ADODB.Connection
    conn.ConnectionString = _
        "Provider=Microsoft.Jet.OLEDB.4.0;" & _
        "Data Source=" & db_file & ";" & _
        "Persist Security Info=False"
    conn.Open
Set rs = conn.Execute("SELECT SUM(Tempo) as Totale  from Archivio ")
'**************************
Set DataReport2.DataSource = rs
DataReport2.WindowState = vbMaximized
DataReport2.Show vbModal
rs.Close
conn.Close
End Sub

 Questo ï¿œ quello che stï¿œ cercando di capire perchï¿œ non funziona.
No, non stai cercando di capire, altrimenti non avresti risposto cosï¿œ, 
ma avresti cercato di studiare la differenza fra orario e periodo, che 
per uno sviluppatore di software ï¿œ una distinzione assolutamente 
fondamentale conoscere.
Alberto

 - Mostra testo citato -
Grazie , ho risolto !

 Grazie , ho risolto !
http://wiki.news.nic.it/QuotarBene

Andrea [Work] ha spiegato il 17/02/2010 :

Puoi lasciarlo perdere.
Finchï¿œ c'ï¿œ stato da postare il suo codice per avere aiuto, ï¿œ stato 
prodigo di parole.
Per spiegare agli altri come avesse risolto, invece, se ne ï¿œ ben 
guardato.
Oltre, presumo, a non aver capito una fava di ciï¿œ di cui si parlava. 
Scommetto che il suo "ha risolto" ï¿œ dovuto ad aver visto un numero 
corretto in un report, senza capire esattamente cosa stesse avvenendo.
Gente cosï¿œ, ï¿œ irrecuperabile.
Alberto