Access - cuadro de lista sin seleccionar click

 
Vista:

cuadro de lista sin seleccionar click

Publicado por elio (169 intervenciones) el 27/04/2009 13:02:46
hola a todos

tengo un cuadro de lista con varias filas y varias columnas, bien lo que quiero es poner en cuadros de texto el valor de las columnas de la fila que me muestre el cuadro de lista, eso si, sin seleccionarla haciendo click desde el formulario asi si funciona, lo que me gustaria que fuera si es posible hacer la seleccion por codigo o sea que no haya que seleccionar con el raton el dato, que sea por codigo seleccionar los valores que en ese momento se muestran en el cuadro de lista, al cuadro de lista le asigno esta consulta de seleccion

Me.Lista20.RowSource = ("SELECT ALMACENES.ALMACEN, ALMACENES.NOMBRE_ALMACEN FROM ALMACENES WHERE (((ALMACENES.ALMACEN)='41__' Or (ALMACENES.ALMACEN)='42__'));")
Me.Lista20.Requery

bien solo logro con el comando me.texto.value = me.lista.itemdata(0) tomar el valor de la primera columna, de los valores que me muestra el cuadro lista,pero no logro tomar el valor de la siguiente columna, como puedo hacer esto??, con me.lista.columna(n) funciona solo si esta seleccionado con el click el cuadro de lista, como dije me gustaria hacer la seleccion por codigo, creo que es posible pero, alguie me puede ayudar por favor.

un millon de gracias, saludos

nota: prefiero cuadro de lista, no cuadro combinado
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

disculpa pregunta totnta

Publicado por elio (169 intervenciones) el 27/04/2009 14:12:34
hola a todos

mil disculpas, la pregunta que exprese es realmente sin sentido y un poco si se quiere anormal, pensando un poco, y despues de un cafe y mirar la montaña una neurona me comenzo a funcionar, y claro, como demonios access iba a saber que dato yo quiero del cuadro de lista sino lo selecciono antes y en todo caso el dato que deseo es solo uno en ese momento, lo siento mucho, bien mi duda realmente es la siguiente, en un formulario tengo diseñado el cuadro de lista ( ancho y alto ) de manera tal que solo me muestra un fila del cuadro de lista, en la medida que me vaya desplazando por el, lo que quiero es que en todo momento pueda de algun modo seleccionar el dato que ire mostrando en el cuadro de lista, o sea cuando me desplazca hacia arriba o hacia abajo, la fila que se muestre poder capturar ese dato, en el ejemplo de mi bbdd, es una ficha de un producto, donde los dos valores que me muestra el cuadro de lista en ese instante actualizaran la ficha de ese producto y seran iguales para todos los producto que deban tener sus datos iguales a los valores del cuadro de lista, bien el problema viene si una vez haya actulizado todos los datos con esas caracteristicas, voy al cuadro de lista y me desplazo el siguiente, quiero que la desplazarme automaticamente me vaya seleccionando el dato en que este posicinado, es esto posible o me estoy enredando mucho, alguna sugerencia, por favor.

mis disculpas, saludos.
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:disculpa pregunta totnta

Publicado por Enrique (1299 intervenciones) el 27/04/2009 18:45:59
Hola Elio:
Imaginemos que tienes un cuadro de lista con tres columnas y quieres mostrar en tres cuadros de texto el valor de cada columna según la Fila que vayas seleccionando con las flechas del cursor (hacia arriba y hacia abajo). Los cuadros de texto los llamaremos: Texto1, Texto2 y Texto3 y el Cuadro de Lista lo llamaremos: CuadroLista.

Al cargar el formulario seleccionamos automáticamente la Fila1 con este Evento:

Private Sub Form_Load()
CuadroLista.Selected(0) = True
End Sub

Y con el Evento "Después de actualizar" del Cuadro de Lista vamos haciendo que en los Cuadros de Texto vayan apareciendo los valores de cada columna de la fila seleccionada:

Private Sub CuadroLista_BeforeUpdate(Cancel As Integer)
Texto1 = CuadroLista.Column(0, CuadroLista.ListIndex)
Texto2 = CuadroLista.Column(1, CuadroLista.ListIndex)
Texto3 = CuadroLista.Column(2, CuadroLista.ListIndex)
End Sub

No hace falta hacer Click en las filas del Cuadro de Lista, es suficiente con desplazarse por las Filas del Cuadro con las flechas arriba y abajo.

Prueba y me cuentas y te sirve.

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:disculpa pregunta totnta

Publicado por Enrique (1299 intervenciones) el 27/04/2009 18:49:50
Como verás, el Evento es ANTES DE ACTUALIZAR, NO Después.

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

gracias Enrique

Publicado por elio (169 intervenciones) el 03/05/2009 14:14:37
Enrique muchas gracias por tu tiempo

Aun no lo he probado, porque estoy en otro bloque del programa de la bbdd y no quiero dejarlo porque cuando se te alumbra un bombillo, o tienes una inspiracion hay que seguir sobre ella, si la dejas para retomarla de nuevo uffff mal asunto, ya te avisare cuando lo haga pero estoy mas que seguro segun tu explicacion que es lo que deseo, un millon de gracias.

saludos.
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

Hola Enrique

Publicado por elio (169 intervenciones) el 04/05/2009 13:58:00
Hola Enrique, un saludo

Estuve mirando lo que me comentabas y me da un error

" UpDate o CalcellUpdate sin AddNew o Edit " se me olvido comentarte que estaba trabajando en access 2000, nose si esto tiene algo que ver con la version de access, te expondre aqui el codigo que tengo en el formulario y cuando tengas un tiempo sino es mucho pedirte te agradeceria le echaras una miradita y me comentaras algo.

Private Sub Form_Load()
Me.Lista20.RowSource = ("SELECT ALMACENES.ALMACEN, ALMACENES.NOMBRE_ALMACEN FROM ALMACENES WHERE (((ALMACENES.ALMACEN)='41__' Or (ALMACENES.ALMACEN)='42__'));")
Me.Lista20.Requery
DoCmd.GoToRecord , , acNewRec
End Sub

Private Sub Lista20_AfterUpdate()
Me.RecordSource = "SELECT * FROM hoja3 WHERE (((hoja3.Almacén)=[Formularios]![FORMU_ACT_ORDEN_BAR_DOR]![LISTA20]) AND (hoja3.Estanteria=0 and hoja3.Balda=0 and hoja3.Posición=0 and hoja3.Nevera=0))"
Me.Estanteria.SetFocus
End Sub

como ves uso la primera consulta para filtrar de la tabla, ya que hay varios almacenes, y solo tomar esos dos en este formulario, y en la segunda muestro solo en el formulario los registros que tengan el almacen seleccionado, y yo lo que queria era que el usuario al ir arriba o abajo en el cuadro de lista automaticamente fuera mostrando los campos del almacen seleccionado, que ahora solo logro si busco el almacen que deseo en el cuadro de lista y le doy click para seleccionarlo, otra cosita por favor y perdona mi atrevimiento, ves que en el evento Form_Load al final tengo que una vez ejecutada la consulta vaya al ultimo registro, esto lo hice para que al abrir el formulario no me muestre nada, y solo se vea los registros cuando se seleccione el cuadro de lista, hay alguna forma mas ortodoxa de hacer esto, porque cuando intente hacerlo con tu ejemplo me decia que no podia ir al registro seleccionado, en fin disculpa toda esta retraila, cuando puedas me comentas, un millon de gracias.

saludos.
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