Hola, como personalmente, no tengo ni idea de BBDD, no podría aconsejarte como hacerlo de un modo directo, ni tan siquiera se si es posible.
De todos modos, te propongo una idea y tal vez pueda servirte o echar un poco de luz sobre tu problema.
Soy un forofo del MsFlexGrid y por ello lo utilizo muchísimo. Se me ocurre que puedas tener un MsFlexGrid auxiliar en el que visualizar esa información.
Necesitarías para simplificarlo, una función que te devuelva la Fila que contiene la Referencia que vas a sumarle, por ejemplo algo asi:
Código vb:
Ver originalPublic Function FilaGrid (Grid As MsFlexGrid, DatoBusco As String, Columna As Single) As Single
For FilaGrid = 1 To Grid.Rows - 1
If Grid.TextMatrix(FilaGrid, Columna) = DatoBusco Then Exit Function
Next
End Function
De este modo, la Funcion devuelve el número de Fila que ocupa tu referencia o que va a ocupar en caso de no encontrarla.
El uso de esta función sería muy simple, por ejemplo:
Código vb:
Ver original'Suponiendo que la Referencia está en la Columna 0 del MsFlexGrid
Fila = FilaGrid(TuGrid, TuReferencia, 0)
' Si llegó al final, añade una Fila que va a necesitar y pone la Referencia
IF Fila = TuGrid.Rows Then
TuGrid.Rows = TuGrid.Rows + 1
TuGrid.TextMatrix(Fila, 0) = TuReferencia
End If
' Pasa los datos a las Columnas adecuadas del Grid, sumando los valores.
TuGrid.TextMatrix(Fila, 1) = Val(TuGrid.TextMatrix(Fila, 1)) + TusUnidades
TuGrid.TextMatrix(Fila, 2) = Val(TuGrid.TextMatrix(Fila, 2)) + TuPrecio
No se si te puede valer, si no es así perdona el rollo.
Un saludo