La Web del Programador: Comunidad de Programadores
 
    Pregunta:  44506 - DETALLE EN TRUEDBGRID
Autor:  Paul Hernàndez Garcìa
Hola, tengo un detalle al usar un data y un Truebdgrid. Resulta que teenemos una aplicaciòn que tiene un data ligado a un TDBgrig, tenemos a opciòn de eliminar un registro y poder agregar otro. Cuando eliminamos un registro mediante la opciòn implicita en Truedbgrid hacemos lo siguiente:

Private Sub TDBGrid1_BeforeDelete(Cancel As Integer)
If MsgBox("Esta seguro de eliminar el articulo de la factura", vbOKCancel, "Eliminando Articulo .....") = vbOK Then
If TipoDeIngreso = False Then
Pilabasura(cont_PILA).idart = TDBGrid1.Columns(0).Value
Pilabasura(cont_PILA).cantidad = TDBGrid1.Columns(3).Value
Pilabasura(cont_PILA).precio = TDBGrid1.Columns(4).Value
cont_PILA = cont_PILA + 1
Else
numrow = numrow - 1
End If
Else
Cancel = 1
End If
frmdetsal.TDBGrid1.RefetchRow
frmdetsal.TDBGrid1.Refresh
End Sub

Y borra correctamente el registro, pero al agregar uno nuevo, ademàs de agregar el nuevo registro, agrega un linea sin datos (en blanco) y cuando quiero eliminar el registro en blanco me marca error. "NO COINCIDEN LOS TIPOS"
Lo que quiero es que no aparezca el renglon en blanco, lo tratè de hacer con rebin, con refresh y con RefetchRow y nada. Agradezco este espacio y agradezco de antemano las respuestas. Saludos desde LAgunas, Oaxaca, México

  Respuesta:  Cesar Juarez
No se si sea tarde la respuesta pero hay te va

solo manda a llamarla y listones

Public Function FEliminaRegistroGrid(tdbGrid As tdbGrid) As Boolean
On Error GoTo ctlSalir
If tdbGridAddNewMode = dbgNoAddNew Then
If Not tdbGridEditActive And tdbGrid.ApproxCount <> 0 Then
If MsgBox("¿Eliminar el registro?", vbCritical + vbExclamation + vbYesNo + vbDefaultButton2, "C u i d a d o") = vbNo Then Exit Function
tdbGrid.Delete
tdbGrid.Refresh
FEliminaRegistroGrid = True
End If
End If
Exit Function

ctlSalir:
MsgBox Err.Description, vbCritical, Err.Number
Err.Clear
End Function

  Respuesta:  SuNcO
No conoco el TDBGrid1 pero en Adodc y Dbgrid y Datagrid me ah pasado eso.. la olucion hasta ahorita es que al crear un nuevo registro le doy los valores por ejemplo si son numericos un 0 y si son cadenas un espacio en blanco

Eso me ah funcionado a mi