Al eliminar un registro en la datagrid

Tengo un problemita al eliminar un registro en la datagrid.. Cuando yo selecciono dentro de la datagrid un registro se elimina el que no esta seleccionado, o sino no se elimina nada o si elimino abajo el ultimo registro se elimina el de arriba, o cualquier registro... Y cuando vuelvo a intentar a eliminar se elimina todo perfectamente lo que estoy seleccionando... Osea la data esta como loca.. ¿habrá una solución para eso?

1 Respuesta

Respuesta
1
La verdad nunca he visto ese comportamiento, se me hace MUY extraño. Por favor publica el código con el que estas cargando el datagrid para revisarlo.
Public FACT As New ADODB.Connection
Public REG As New ADODB.Recordset
Public consul As New ADODB.Recordset
Private Sub eliminarpedido_Click()
If detalle.State = adStateOpen Then
detalle.Close
End If
detalle.Open "select * from detallefactura where detallefactura.cod='" & (Text10) & "'", FACT, adOpenDynamic, adLockOptimistic
resp = MsgBox("¿DESEA ELIMINAR EL REGISTRO?", vbQuestion + vbYesNo, "Mensaje")
If resp = 6 Then
detalle.Delete
DataGrid1_Click
MsgBox "  LOS DATOS FUERON ELIMINADO  ", vbInformation + vbOKOnly, "Mensaje"
Else
MsgBox "  LOS DATOS NO FUERON ELIMINADO  ", vbInformation + vbOKOnly, "Mensaje"
End If
mostrarpedido
End Sub
Private Sub DataGrid1_Click()
    DataGrid1.Col = 1              ' Columna 2
    Text10 = DataGrid1.Text
     DataGrid1.Col = 2             ' Columna 2
    Text16 = DataGrid1.Text
 End Sub
A me falto estos disculpa:
Public actualiza As New ADODB.Recordset
Private Sub mostrarpedido()
actualiza.CursorLocation = adUseClient
actualiza.Open "select * from detallefactura where numfact=" & Text17, FACT, adOpenDynamic, adLockReadOnly
Set DataGrid1.DataSource = actualiza
Set actualiza = Nothing
End Sub
Disculpa la demora pero he estado full de trabajo en estos días.
Por favor intenta usar el siguiente código:
Para cargar el Datagrid con los registros de tu tabla:
Set cnAc = New ADODB.Connection
cnAc.Open "Dsn=BD5local"
cnAc.CommandTimeout = 300
Set rsac = New ADODB.Recordset
rsac.LockType = adLockOptimistic
rsac.CursorType = adOpenKeyset
rsac.Source = ("select * from Tabla") // usa el query que requieres aqui
rsac.ActiveConnection = cnAc
rsac.Open
Set Me.DataGrid1.DataSource = rsac
Me. DataGrid1. Refresh
Y en las propiedades del datagrid pon en AllowDelete el valor True, así mismo en los demás si deseas que el usuario pueda actualizar y agregar datos desde el datagrid hacia la BD. Al hacerlo de esta manera nunca he tenido el problema que describes, puedo agregar más registros, eliminarlos y demás y siempre elimina el registro correcto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas