Seleccionar registro en combobox al entrar |
Responder |
Autor | |
Kiket
Asiduo Unido: 28/Diciembre/2005 Localización: España Estado: Sin conexión Puntos: 200 |
Opciones de entrada
Gracias(0)
Enviado: 01/Julio/2022 a las 05:03 |
Hola de nuevo, aunque parezca sencilla la pregunta, me está llevando un quebradero de cabeza y recurro a ustedes para ver si me pueden ayudar.. Tengo una lista con muchos registros donde al hacer click en uno de estos me captura el número de registro (su index) del siguiente modo: Index = Me.Lista.ListIndex Luego este valor capturado
lo paso a otro formulario donde existe un “combobox” con los mismos registros
que se tenían en la lista (anterior mencionada) donde quisiera que este
registro fuese seleccionado (por defecto) al entrar en este combo y que realizo
del siguiente modo: Me.Combo. Dropdown ‘..primero lo despliego Me.Combo = Me.Combo.ItemData(Index) Esto funciona bien excepto en el caso de que el texto de los registros coincidan donde me coje el primer valor coincidente y no el correspondiente al index; a continuación muestro el ejemplo del error: Lista - Valor del
index que es capturado Jose 0 Antonio 1 Patricia 2 Pedro 3 Antonio 4 Rebeca 5 Si
selecciono el último registro con nombre “Antonio”, el valor que es guardado (Me.Lista.ListIndex
= 4); .. pero luego al entrar en el combobox y ejecutar (Me.Combo = Me.Combo.ItemData(Index))
selecciona el primer nombre Antonio y debería seleccionar el último ¿?¿?.. He probado también para
la selección con estas opciones: Me.Combo. Dropdown Me.Combo.Selected(Index) =
True --- Me.Combo.Dropdown Me.Combo.ListIndex = Index --- El problema con estas
opciones anteriores es que selecciona el registro en el combo y sale el enfoque
de este control (ejecutando otros eventos) y quiero que se quede de manera
visual el registro seleccionado por si deseo seleccionar otro que no sea el que
tiene el enfoque (por defecto) ¿Alguna sugerencia?, ¿Algo
que esté realizando mal?.. gracias de antemano Editado por Kiket - 01/Julio/2022 a las 05:07 |
|
Kike
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14017 |
Opciones de entrada
Gracias(0)
|
No, lo estás haciendo bien.
Para asegurar el valor la forma correcta es: Me.Combo.Selected(Index) = True Si te ejecuta eventos del cambo, tendrás que ponerte una variable booleana (semáforo o flag) que te permita salir del evento sin ejecutarlo. |
|
Kiket
Asiduo Unido: 28/Diciembre/2005 Localización: España Estado: Sin conexión Puntos: 200 |
Opciones de entrada
Gracias(0)
|
Gracias Mihura, es como dices..; descarté la sentencia "Selected" porque me actualizaba el valor del campo y se producia el evento "AfterUpdate" donde se ejecutaba cierto código (personal) que me bloqueaba el campo posteriormente y entonces busque otras maneras de hacerlo dando palos de ciego..
Teniendo esto en cuenta pondré algún marcador (True/False) para que me ejecute el "AfterUpdate" cuando sea necesario A veces, por ser (yo) tan cabezota busco alternativas que me desvían del objetivo y luego todo resulta más fácil.. jeje.. Un abrazo y gracias.. Se puede cerrar el hilo
|
|
Kike
|
|
Mihura
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador Unido: 06/Mayo/2005 Localización: En la dehesa Estado: Sin conexión Puntos: 14017 |
Opciones de entrada
Gracias(0)
|
Eso nos pasa a todos
|
|
Kiket
Asiduo Unido: 28/Diciembre/2005 Localización: España Estado: Sin conexión Puntos: 200 |
Opciones de entrada
Gracias(0)
|
Reabro el tema porque al parecer no quedó zanjado el asunto.., sorry Yendo al primer mensaje que expuse, el problema sucede al pasar el valor capturado (Lista.Index) a otro formulario para que luego al entrar en un combo de este (con los mismos registros que se tenían en la lista) quede seleccionado por defecto el mismo Esta
selección la realizo en un proyecto de esquemas donde tengo que poner
encabezados con subencabezados y pueden haber incluso más de 1000 registros en
una lista, así que me facilita el trabajo la selección por defecto para no
tener que ir buscando en que punto del esquema me quedé..; luego añado
comentarios al esquema y otras cosas, pero para no liar el asunto volvamos al
problema en cuestión En un mismo formulario todo funciona bien,
es decir, capturo el valor de la lista en un campo llamado Index (que no es
editable pero que tengo visible para ver
su valor) donde en el evento -Al hacer click- de la lista he puesto “Me.Index =
Me.Lista.ListIndex” y luego envío el foco al control combo donde en su
evento -Al entrar- he puesto: Me.Combo.Dropdown
‘..con esto despliega los registros Me.Combo.Selected(Me.Index)
= True ‘..con esto lo selecciona el deseado Esto funciona perfecto!! Pasando el argumento capturado a otro formulario es
donde no sucede lo mismo y ocurre el error cuando los registros coinciden con su misma
definición, donde es seleccionado el primero, para ello sigo
los mismos pasos que en el caso anterior; es decir, capturo el valor -Al hacer
click en la lista- en un campo del mismo formulario con “Me.Index =
Me.Lista.ListIndex” que luego envío -Al hacer click en un botón- a otro
formulario del siguiente modo: DoCmd.OpenForm
"Formulario2" ‘..Abrimos el 2º formulario '-- Form_Formulario2.Index = Me.Index ‘..guardo el valor del Index en un campo del formulario2
(que no es editable pero que tengo visible para ver su valor y que es
mostrado correctamente) ..lo
podría hacer con variables (que ya he probado) pero siguen dando el mismo error Y luego
al entrar en el combo (de este segundo formulario) he puesto lo mismo
que indique anteriormente y que si funcionaba en el caso de un solo formulario,
es decir: Me.Combo.Dropdown
‘..con esto despliega los registros Me.Combo.Selected(Me.Index)
= True ‘..con esto lo selecciona el deseado El error sucede (como ya
indiqué) cuando la definición de un registro es la misma (como en el caso de
tener 2 nombres “Antonio” coincidentes), donde si seleccionamos el segundo de
la lista, al entrar en el combo quedaría seleccionado el primero (aunque los
valores mostrados en los campos Index son correctos)¿?¿? .. ¿Alguna sugerencia?, ¿Algo
que esté realizando mal?, gracias de antemano por la paciencia.. |
|
Kike
|
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |