Access - Cuadro de texto y cuadro de lista en access

 
Vista:

Cuadro de texto y cuadro de lista en access

Publicado por FranC (11 intervenciones) el 26/11/2009 12:21:00
Hola estoy intentando que en un formulario en el que tengo un cuadro de texto que muestra una clave autonumérica, se muestre en un cuadro de lista, en función del dato que sale en el cuadro de texto, una serie de autores o autor de un libro cualquiera y que viene referenciado por el campo autonumérico.

El caso es que al cargar el formulario me sale correcto el escritor del primer escritor, pero al pasar registros, no se cambia el contenido del cuadro de lista, todo el tiempo me aparece el escritor del primer registro.

En la propiedad del cuadro de lista "Origen de la fila" he puesto una consulta que muestra al autor o autores en función del número que aparece en el cuadro de texto del formulario.
Y en el evento "Al Cambiar" del cuadro de texto he puesto el siguiente código:

Lista32.RowSourceType = "Table/Query"
Lista32.RowSource = [escritores según clave de obra]
Lista32.Requery

Pero bueno el caso es que no se por donde estoy metiendo la pata. A ver si me podéis guiar.
Saludos y gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cuadro de texto y cuadro de lista en access

Publicado por Chea (1015 intervenciones) el 26/11/2009 22:15:05
Imagina que el valor de la propiedad lo escribes como en un cuadro de texto. Si es texto, en el cuadro de texto lo escribes directamente, pero en VB lo pones entre comillas:

Lista32.RowSource = "escritores según clave de obra"

Saludos
José Bengoechea Ibaceta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cuadro de texto y cuadro de lista en access

Publicado por FranC (11 intervenciones) el 27/11/2009 10:06:00
Hola he hecho lo que me has escrito pero sigue sucediendo lo mismo que escribí en la pregunta...

Me pregunto si a Lista32.RowSource sería mejor pasarle directamente un SELECT...????

Saludos y Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cuadro de texto y cuadro de lista en access

Publicado por FranC (11 intervenciones) el 27/11/2009 10:18:37
Hola soy yo otra vez... he probado esto:

En el evento al cambiar del cuadro de texto.

Private Sub ClaveObra_Change()

Dim Cautor As Integer
Cautor = ClaveObra.Value

Lista32.RowSourceType = "Table/Query"
Lista32.RowSource = "SELECT [Autores union apellidos y nombres].ClaveAutor, [Autores union apellidos y nombres].[Apellidos y nombre] FROM [Autores union apellidos y nombres] WHERE [Autores union apellidos y nombres].ClaveAutor = CAutor.Value;"
Lista32.Requery


End Sub

Pero no funciona... no se donde puedo equivocarme.

Gracias de ante mano.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cuadro de texto y cuadro de lista en access

Publicado por Chea (1015 intervenciones) el 28/11/2009 00:41:06
Prueba así:

Lista32.RowSource = "SELECT [Autores union apellidos y nombres].ClaveAutor, [Autores union apellidos y nombres].[Apellidos y nombre] FROM [Autores union apellidos y nombres] WHERE [Autores union apellidos y nombres].ClaveAutor = " & CAutor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cuadro de texto y cuadro de lista en access

Publicado por FranC (11 intervenciones) el 01/12/2009 10:43:09
He probado con lo que me has escrito y sigue ocurriendo lo mismo, no se muestran los escritores en el cuadro de lista.

La verdad es que no se bien donde buscar, en los manuales no me aclara mucho... La verdad es que algo que en principio parece tan sencillo como que cada vez que se cambie un registro del formulario, se utilice el campo autonumérico, como parámetro que se pasa a un select para que actualice un cuadro de lista...

¡buf!, fastidia estar probando y que no aparezca nada... y como además no da error de sintaxis... o cualquier otra cosa...

La verdad es que llega un momento en el que te quedas sin ideas.

No se te ocurre que "cosa" pueda estar ocurriendo para que no actualice nunca el cuadro de lista..

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cuadro de texto y cuadro de lista en access

Publicado por Enrique (1299 intervenciones) el 01/12/2009 19:26:12
Hola FranC:
Tiene que funcionar de la forma que te indica Chea si el campo ClaveAutor es numérico, pero tienes que hacer unos pequeños cambios:

Primero el Evento debe ser "Después de actualizar" (AfterUpdate), no Change.
Segundo en las propiedades del Cuadro de Lista tienes que poner:
Numero de Columnas: 2
Ancho de columnas; 1 cm;8 cm (1 cm para la columna ClaveAutor y 8 cm para la columna Apellidos y Nombre, aunque estos anchos los puedes cambiar.
Columna dependiente: 1

Y luego el Evento debe quedar así: (No tienes que definir ninguna variable)

Private Sub CAutor_AfterUpdate()
Lista32.RowSourceType = "Table/Query" 'Esto puede que sobre
Lista32.RowSource = "SELECT [Autores union apellidos y nombres].ClaveAutor, [Autores union apellidos y nombres].[Apellidos y nombre] FROM [Autores union apellidos y nombres] WHERE [Autores union apellidos y nombres].ClaveAutor = " & CAutor
Lista32.Requery
End Sub

La linea primera donde asignas la propiedad Tipo de Origen de la Fila (RowSourceType), no será necesaria si en las propiedades ya tienes puesto "Tabla/Consulta"

Prueba ahora a ver.
Saludos
Enrique
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cuadro de texto y cuadro de lista en access

Publicado por CARLOS (1 intervención) el 18/02/2010 19:37:33
El tema es que el evento change del que llamaré <micontrol> no implica que su valor haya cambiado; eso ocurre al salir del mismo. Lo que hay que hacer es, en el evento change, hacer un <otrocontrol.setfocus>(para que los cambios en micontrol se hagan efectivos) ,<micontrol.setfocus>(para devolver el control a <micontrol>),<sendkeys {f2}>(para que se posicione al final de <micontrol> y poder seguir introduciendo el texto que quiera). La pérdida de tiempo es imperceptible y funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar