La verdad es que en el código que adjuntas no veo por ninguna parte que vayas calculando dicho sub_total. Además en la columna 4 de la fila(i), pones un valor '0'.
Por otro lado, si las filas del grid se acaban antes que el número de registros de la consulta realizada, nunca llegarás a poner el subtotal..aunque lo calcules.
Ya nos explicarás...
PD: Al margen de lo mencionado anteriormente, la variable Date tampoco se le asigna un valor, por lo que seguramente no encontrará ningún registro. No sé, me parece que tienes que revisar en profundidad el código y no conformarte con justificar su mal funcionamiento a la instalación de un SP...
Seguramente es más coherente el enfoque de este código adjunto:
Código:
Dim fecha As Date
Dim SbTotal As Double
Dim i As Long
Dim Sql As String
Dim adoPrimaryRS As New ADODB.Recordset
i = 0 : sbTotal = 0
MSHFlexGrid1.Rows=1
Set adoPrimaryRS = New ADODB.Recordset
adoPrimaryRS.CursorLocation = adUseClient
fecha = [Algún_objeto_que _informe_la _fecha_deseada]
sql = "Select * From Pedidos Where pedido = '" & MSHFlexGrid1.TextMatrix(i, 2) & "' And Fecha = #" & Date & "#"
adoPrimaryRS.Open sql, cnn, adOpenStatic, adLockOptimistic
'Procesamos
If adoPrimaryRS.RecordCount > 0 Then
adoPrimaryRS.MoveFirst
Do until adoPrimary.EOF = true
MSHFlexGrid1.rows = MSHFlexGrid1.rows+1
i=i+1
MSHFlexGrid1.TextMatrix(i, 4) = adoPrimaryRS!total
sbTotal = sbTotal + adoPrimaryRS!total
adoPrimaryRS.MoveNext
Loop
'Ponemos el subtotal calculado
i=i+1
MSHFlexGrid1.rows = MSHFlexGrid1.rows+1
MSHFlexGrid1.TextMatrix(i, 4) = format(sbTotal,"#,##0.00")
MSHFlexGrid1.TextMatrix(0, 4) = "Subtotal"
end if
Lógicamente estoy imaginando lo que tratas de obtener y con esta premisa contruyo este código pero claro, me puedo equivocar por la falta de definición de tu planteamiento.