ok ti allego quello che sono riuscito a fare:
allora io ho fatto cosi :

Set grsCasaPro = New ADODB.Recordset
gsSQL = "SELECT MIN(TME_RIL) AS primo, MAX(TME_RIL) AS ultimo FROM " & scerca & " WHERE DTA_RIL between #" & txt_dal.Text & "# AND #" & txt_al.Text & "# AND MTR_OPERAIO
LIKE """ & "%" & smatricola & "%"""
grsCasaPro.Open gsSQL, gCnDatabase

Dim nuovastringa3 As String
Dim nuovastringa1 As String
Dim nuovastringa2 As String
nuovastringa1 = Left$(grsCasaPro!ultimo, 2)
nuovastringa2 = Right$(grsCasaPro!ultimo, 2)
nuovastringa3 = nuovastringa1 & ":" & nuovastringa2
Dim nuovastringa6 As String
Dim nuovastringa4 As String
Dim nuovastringa5 As String
nuovastringa4 = Left$(grsCasaPro!primo, 2)
nuovastringa5 = Right$(grsCasaPro!primo, 2)
nuovastringa6 = nuovastringa4 & ":" & nuovastringa5

Dim nuovastringa7 As String
' nuovastringa7

' Format(nuovastringa7, "HH:mm") = DateTime.DateDiff("hh:mm", nuovastringa3, nuovastringa6)
nuovastringa7 = Format$(TimeValue(nuovastringa3) - TimeValue(nuovastringa6), "hh:mm")

FXG_griglia.Text = nuovastringa7

e cosi mi prende il valore minimo e massimo, ci aggiungo i due punti, e faccio la differenza funziona!!!! ma ci sono 2 problemi!!!
1) come faccio a fargli scorrere un giorno per volta (perche' cosi facendo mi incasina tutto con il cambio del turno)?
e poi fare la media dei valori?
2) come faccio con la questione del turno 20.00 - 03.00?