Código para abrir form según registro seleccionado en una lista

Disculpad pero soy muy novata y voy haciendo como buenamente puedo.
Tengo un formulario con un cuadro de texto y un cuadro de lista, en el cuadro de texto introduzco un valor para que se muestren los registros coincidentes de una tabla en el cuadro de lista. Hasta aquí lo tengo montado todo y hasta me funciona.

Pero quiero crear un botón con un código sencillo que me coja el registro seleccionado en el cuadro de lista y me abra un formulario con el registro en cuestión. ¿Qué código debería tener este botón?

Respuesta
2

Monica: Dentro de Cuadro de lista tendrás y si no es así debes tener un identificador único que será el que uses para abrir el Formulario. No necesitas el botón complementario.

Suponiendo que t u ListBox se llama >> LBoxResultados y que el Formulario que quieres abrir se llama Clientes, Programas el Evento DobleClick del ListBox.

El código sería como el que te pongo y solo tienes que adaptarlo a tus Nombres.

Private Sub LBoxResultados_DblClick(Cancel As Integer)
On Error GoTo Err_LBoxResultados_DblClick_Click
Dim NombreForm As String
NombreForm = "Clientes"
Criterios = "IdCliente]= '" & Me![IdCliente] & "'" 'Esto es para dato tipo Texto
'Criterios = "[IdCliente]=" & Me![IdCliente] ' Si es un Número lo que Tienes
DoCmd.OpenForm NombreForm, , , Criterios
Criterios = ""
'DoCmd.Close acForm, Me.Name 'Esta línea cierra el Formulario desde el que abres el de Clientes
Exit_LBoxResultados_DblClick_Click:
Exit Sub
Err_LBoxResultados_DblClick_Click:
MsgBox Err.Description
Resume Exit_LBoxResultados_DblClick_Click
End Sub 

Te lo pongo muy desglosado, por si te falla algo que lo puedas detectar.

Y por último si es que copias y pegas éste código no te olvides de "Activar" [Procedimiento de Evento] en las Propiedades del ListBox. Un saludo >> Jacinto

Muchísimas gracias Jacinto, tengo un par de dudas...
Criterios es una variable? Si es así, la tengo que definir?
Por otra parte, IdCliente supongo hace referencia al campo clave de la tabla

Monica: Si debes declarar la variable de Criterios como String

Y si el IdCliente hace referencia al campo Clave de la Tabla.

En el Ejemplo la Tabla Clientes que tiene un Formulario que se llama igual y en el que hay un "Control", llamado IdCliente que tiene como Origen de datos el "Campo" IdCliente de la Tabla.

Mis saludos >> Jacinto

Hola Jacinto, Houston tenemos un problema!
EL código está introducido y no me reporta ningún error, pero al hacer doble click sobre uno de los registros se abre correctamente el form (con el filtro activo puesto que solo se muestra un registro) pero en lugar mostrar el registro seleccionado en la lista mediante el doble click me muestra el primer registro de la tabla (en realidad el form se basa en una consulta) Es como si el criterio no cogiera el valor de la lista de forma correcta a mi parecer.

Entiendo que la línea de código que asigna el valor del doble click desde la lista es:

Criterios = "IdCliente]= '" & Me![IdCliente] & "'" 

He declarado la Variable que faltaba en tu ejemplo...

 Dim Criterios As String

 Y de hecho si selecciono un registro de la lista y hago un CTRL+C el valor que se toma es el código... Pero no abre el formulario por ese registro

Mónica: Le doy una mirada mañana porque ya estarde. Un saludo >> Jacinto

Mónica: Salvo que sea el tipo de dato, texto o número, no veo nada extraño.

Te desglosé las líneas, pero aquí te adjunto un enlace con una sola, de Microsoft

https://msdn.microsoft.com/es-es/library/office/ff837260.aspx 

Ten en cuenta lo que tecité del tipo de datos.

"[IdCliente]= '" & Me![IdCliente] & "'" 'Esto es para dato tipo Texto
"[IdCliente]=" & Me![IdCliente] ' Si es un Número lo que Tienes

Si aún así sigues con problemas, me comentas y vemos que se puede hacer. Un saludo >> Jacinto

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas