(26-06-2023, 12:45)jackrobot escribió: en el momento de eliminar me elimina el primer registro y no el que tengo seleccionado
Este es el código de eliminación del registro:
Código:
Public $Result As Result
'...
Public Sub btneliminar_Click()
Dim $Result As Result
$Result = $Conn.Exec("select * from TblClientes")
If Message.Question("Desea ELIMINAR PERMANENTEMENTE este registro ?", "Si", "Cancelar") = 1 Then
$Result = $Conn.Edit("TblClientes", " id = " & $Result!id)
$Result.Delete
$Result = $Conn.Exec("select * from TblClientes")
agregardatos()
Endif
End
Tenes dos variables que se llaman $Result una global y otra local, esta ultima oculta (shadow) la variable gobal, si el result de los datos esta en la variable pública y dentro del método de eliminacion no accedes a esos datos porque hay una variable que se llama igual y esta vacia o nula y ahí tu problema.
prueba hacer esto:
Código:
Public Sub Borrar(sTab As String, fld As String, id As Integer)
Dim res As Result
res = $Conn.Exec("delete from " & sTab & " where " & fld & "='" & CStr(id) & "'")
End
Public Sub btneliminar_Click()
Borrar("TblClientes", "id", CInt(txtid.Text))
End
Luego veo que usas $ como primer carácter de una variable publica y luego dentro de un método, es conveniente que solo ponga $ delante de variables del tipo Private y nunca uses los mismos nombres de variables publicas o private dentro de un procedimiento.