Copiar datos de un listbox a formulario activo

Tengo mi BD, de biblioteca que al abrir el "formulario entrega" en el apartado de la peroso a quien se entrega el producto me abre un formulario de "búsqueda de personas "con sus datos mediante código VBA, dependiente de una tabla, esos datos aparecen en un cuadro de lista, que al hacer doble click en algún resultado de las lista hice que me copie los datos en el "formulario entrega", el inconveniente resulta ser que para lo mismo tengo para el "formulario recepción", por mi parte lo resolví, duplicando el formulario nusqueda, por ahora me funciona, ¿Esta Bien lo que Hice? O hay manera de que al solamente me copie los datos en el formulario activo, a fin de no andar duplicando formularios

Pongo el código utilizado actualmente

Busqueda de personas_entrega 

Private Sub cmdBuscar_Click()

If IsNull(txtBuscar.Value) Or txtBuscar.Value = "" Then

Lista.RowSource = "select DNI,  APELLIDO, NOMBRE from PERSONAS"

Else

Lista.RowSource = "select DNI,  APELLIDO, NOMBRE from PERSONAS WHERE dni & APELLIDO & NOMBRE LIKE'*" & txtBuscar & "*'"
End If
End Sub

Private Sub Lista_DblClick(Cancel As Integer)
DNI = Lista.Column(0)
APELLIDO = Lista.Column(1)
NOMBRE = Lista.Column(0)
'al hacer doble clic en el registro seleccionado lo importo al F_entrega
Forms!F_ENTREGA!txtOF_NLUP.Value = DNI
Forms!F_ENTREGA!txtjerarquia.Value = APELLIDO
Forms!F_ENTREGA!txtapellido.Value = NOMBRE

DoCmd.Close acForm, "F_BUSQUEDA"
End Sub

Nota: Previamente declare variables

1 respuesta

Respuesta
2

Una idea, suponiendo que el formulario de búsqueda lo abres con DoCmd. OpenForm: usar el OpenArgs para pasarle el nombre del formulario desde el que lo llamas.

La cosa iría así:

1º/ En los formularios de entrega y recepción, modifica las líneas del DoCmd. OpenForm para que te queden algo así :

DoCmd. OpenForm "F_Busqueda",,,,, acDialog, Me. Name

Lo que está en negrita es lo que has de añadir

2º/ Modifica el código de "al hacer doble click" del cuadro de lista así:

Private Sub Lista_DblClick(Cancel As Integer)
DNI = Lista.Column(0)
APELLIDO = Lista.Column(1)
NOMBRE = Lista.Column(0)
'al hacer doble clic en el registro seleccionado lo importo al formulario correspondiente
Forms(Me.OpenArgs).txtOF_NLUP.Value = DNI
Forms(Me.OpenArgs).txtjerarquia.Value = APELLIDO
Forms(Me.OpenArgs).txtapellido.Value = NOMBRE

DoCmd.Close acForm, "F_BUSQUEDA"
End Sub

Un saludo.


Ahí aplique lo antes expuesto, me surge ahora al hacer doble click en la lista el mensaje "No coinciden los tipos " 

Nuevamente gracias

El código propuesto funciona a la perfección, lo acabo de probar (te dejo aquí la BD de prueba)

A falta de más datos (dónde te da el error, que linea te marca), supondré que tienes mal declarado el tipo de datos de alguna variable y le intentas pasar un valor que no se corresponde, o bien, se lo intentas pasar a las tablas (por ejemplo un texto a un campo/variable numérica...)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas