El formulario esta dividido en dos partes y lo que pasa en la derecha depende de lo que se hace en la izquierda.
Los objetos que se encuentran en la ventana
DETALLE PERSONA dependen de tener un registro seleccionado en el ListBox1 (
LISTADO GENERAL) por lo que si no hay seleccionado un nombre no se debe poder editar.
Empezaremos poniendo todos los objetos con Enabled a False:
Cuando se seleccione un nombre en el ListBox1 (
LISTADO GENERAL) se hace un clear en el ListBox2 y se pone a True en botón cmdNuevo_Dep.
Cada vez que se carga el ListBox1 hay que ejecutar el código de arriba.
Aquí hay dos opciones, sigo ablando de la ventana
DETALLE PERSONA, seleccionar un nombre del ListBox2 o añadir un nombre nuevo.
Botón cmdNuevo_Dep.
Debe cambiar lo estados de Enabled de la siguiente forma:
Observe que hay dos campos que no se han cambiado porque no son editables y el botones de Eliminar no se activó.
Seleccionar nombre en el ListBox2
Debe cambiar lo estados de Enabled de la siguiente forma:
Observe que hay dos campos que no se han cambiado porque no son editables.
NOTA: Los TextBox txt_NumDep y txtID_PR no son editables por lo que en lugar de TextBox deberían ser Label
GUARDAR
Lo primero que hay que hacer es verificar el campo
txtId_Dep tenga datos, los demás a gusto del usuario.
En el momento de guardar hay que mirar el valor de
ListBox2.ListIndex
Si vale -1 es un alta, se busca la primera fila vacía y se guarda.
Cualquier otro valor se busca una coincidencia por la columna H o lo que es lo mismo, las columnas A y C en la tabla y se guarda.
Y ahora ya podemos pasar al problema de la consulta pero antes una pregunta:
¿La duplicidad que se quiere evitar es solo para el mismo DEPENDIENTE o e general en la tabla?
No se que información se maneja en estas tablas pero se me ocurre que una persona relacionada puede ser hijo de un dependiente y padre de otro.
También puede que los dependientes sean personas mayores y tener a tener al padre y la madre con lo que la persona relacionada estaría dos veces, una por cada progenitor.
Hace falta la respuesta a la pregunta para terminar el tema.
¿Quieres que modifique el código con todo lo que te cuento?
Saludos.
\\//_