jackrobot   26-06-2023, 12:45
#1
Bueno gente, Sleepy he vuelto, intente seguir el tema pasado pero no encontré como subir el nuevo archivo y pues tuve que crear un tema nuevo ..espero no abusar de la confianza o hacer un mal post,
Les comento que desde la ultima vez he tenido algunas mejoras pero tengo un problema que no comprendo ,  les explico, en mi programa empiezas con una ventana de búsqueda (aun no implementado) al no encontrar el registro debes agregarlo, es decir agregar cliente. En esta otra ventana agregas los datos de un cliente o cancelas y modificas los de algún otro cliente, pues al cancelar el proceso  te carga los clientes existentes para editarlos o eliminarlos , Confused es aquí donde ocurre algo que no entiendo , en el momento de eliminar me elimina el primer registro y no el que tengo seleccionado, no se porque hace eso  me podrían explicar que ocurre, adjunto el código de mi programa e estado investigando pero no se que hago mal y ya debo recurrir por ayuda  un gran saludo gente espero no ser molesto. Angel Rolleyes Rolleyes
Archivos adjuntos
.zip
Pinto_Express_Vercion_1.zip (Tamaño: 575.55 KB Descargas: 2)
tincho   26-06-2023, 18:20
#2
(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.
Última modificación: 26-06-2023, 18:24 por tincho.

1 Saludo.
  
Usuarios navegando en este tema: 3 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.