Llenar un dbgrid

Estoy realizando un proyecto donde ocupo un tipo factura-pedido y deseo emplear un dbgrid para colocar el código del articulo y que me despliegue los datos de ese articulo y haga cálculos y me los muestre en las demás columnas del dbgrid. Algo de esto me funciona, lleno las columnas con valores de txtbox y labels, pero solo me hace la primera fila, si busco otro articulo, no me pasa de rengln se vuelve a sobreescribir en el renglón 1, y no se como pasar a la otra fila, tengo la idea de utilizar un conatador para la fila. Pero no me funciona
Escribo en el evento clic de un botón
dbgrid1.row(n)= db1grid1.row(n) + 1
La verdad no se ni como realizar el salto de fila o renglón.
Quisiera que se llenara en la columna del dbgrid el campo código y que al dar clic desplegara los demás datos del registro, pero no si es posible.

1 Respuesta

Respuesta
1
a ver.. más fácil con un ejemplo
¿Con qué lo metes con un botón?
Bueno pone una variable en el formulario...
Fila as integer
Cuando el dbgrid esta vacío...
fila = 0
cuando CLICK ACEPTAR para agregar una fila...
fila = fila + 1
Y completas las columnas
Si en algún caso...
Puede ser que al abrir el formulario este tenga datos...
puedes poner fila = dbgrid.rows
NO ME ACUERDO CON QUE PROPIEDAD te da la cantidad de filas... pero alguna debe haber...
Un consejo... create un proyecto nuevo..
Con un formulario con un textbox
Y un dbgrid (con 1 o 2 columnas)
Y prueba hay hasta que salga... sera más fácil de probar y todo
Ademas puedes usar
msgbox "cantidad de filas: " & dbgrid.rows & " fila actual: " & dbgrid.row
Podes ponerlo en el evento click de este formulario para ir corroborando el valor de las filas o de la variable
Lo siento pero no entiendo como le digo que empiece en la fila uno y que se valla brincando a la 2 y luego a la tres cada vez que yo pulse en botón aceptar. Mi código es más o menos así:
´En el evento clic del botón aceptar
Dim total As Double
Dim desc As Double
Dim costo As Double
Dim iva As Double
Dim ivatotal As Double
Dim costo1 As Double
Dim descuento As Double
If Val(txtprecio.Text) > 0 Then
desc = Val(DBGrid1.Columns(5))
If desc = 20 Then
desc = 0.2
End If
If desc = 30 Then
desc = 0.3
End If
If desc = 10 Then
desc = 0.1
End If
Else
desc = 0
End If
If Data1.Recordset!iva > 0 Then
iva = 0.15
End If
descuento = Val(txtprecio.Text) * desc
frmVentas.lbldesc.Caption = descuento
costo1 = Val(txtprecio.Text) - descuento
ivatotal = costo1 * iva
costo = costo1 + ivatotal
frmVentas.lbliva.Caption = ivatotal
frmVentas.lblcosto.Caption = costo
DBGrid1.Columns(0) = txtcodigo.Text
DBGrid1.Columns(1) = txtdescripcion.Text
DBGrid1.Columns(2) = txtprecio.Text
DBGrid1.Columns(3) = lbldesc.Caption
DBGrid1.Columns(4) = lbliva.Caption
DBGrid1.Columns(5) = lblcosto.Caption
' a qui quiero que se valla al otro renglon si yo pulso aceptar de nuevo o lo tengo que poner mas arriba.
DBGrid1.Row = DBGrid1.LastRow(1) + 1
A ver ... me parece que lo que estas haciendo ahí..
Es asignarle un nuevo numero a la fila en la que estas posicionado...
Lo que estas haciendo ahí es cambiándole el numero a la fila en la que estas...
Para agregar debes usar el método row pero sin el (n)
Seria algo así
dbgrid.row = dbgrid.row(NroUltima) + 1
Con esto te salteas a la linea siguiente
Cualquier cosa me vuelves a escribir...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas