[Resuelto] No sale valor seleccionado en combo |
Responder |
Autor | |
zelarra
Habitual Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Tema: [Resuelto] No sale valor seleccionado en combo Enviado: 15/Noviembre/2020 a las 15:20 |
Buenas tardes.
Tengo un problema con los desplegables. Si establezco su el origen de la fila mediante VBA, cuando selecciono un valor del desplegable, este no aparece. Tengo que pinchar en él, o en otra desplegable, y ya aparece. He probado a hacer una consulta previa, por si la que utilizara en VBA para el origen de la fila fuera compleja; también a establecer un origen de la fila en las propiedades del desplegable. Ninguna de las opciones me da resultado. Esto es la segunda vez que me sucede. Tengo otra base de datos que sucede lo mismo, y no sé porqué es. Este es el código: Private Sub SrchTipo_Enter() Me.SrchTipo.RowSource = "SELECT TipoDeVideo, TTiposDeVideo.CodigoTipoDeVideo, CodigoEstado" _ & " FROM TTiposDeVideo INNER JOIN TVideos ON TTiposDeVideo.CodigoTipoDeVideo = TVideos.CodigoTipoDeVideo" _ & " WHERE TTiposDeVideo.CodigoTipoDeVideo <> 1 And CodigoEstado=" & DLookup("CodigoEstado", "TEstados", "Estado='" & Me.SrchEstado & "'") & "" _ & " GROUP BY TipoDeVideo, TTiposDeVideo.CodigoTipoDeVideo, CodigoEstado" _ & " ORDER BY TTiposDeVideo.CodigoTipoDeVideo" Debug.Print Me.SrchTipo.RowSource Me.SrchPrograma = "" Me.SrchFuente = "" End Sub He grabado un video con el comportamiento: https://www.dropbox.com/s/hjpjfcyz2lcvjfq/Video.avi?dl=0 Gracias. Editado por zelarra - 15/Noviembre/2020 a las 23:23 |
|
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: 13990 |
Enviado: 15/Noviembre/2020 a las 16:37 |
Si quieres tener el combo activo 'todo el tiempo' dale vale al rowsource en el evento LOAD del formulario.
Y si lo quieres al entrar en él, yo usaría el evento GotFocus.
|
|
zelarra
Habitual Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Enviado: 15/Noviembre/2020 a las 16:45 |
Hola, Mihura. Muchas gracias por responder. Lo he puesto en el evento GotFocus porque está vinculado a otro inmediatamente anterior, pero sigue haciendo lo mismo.
Por probar, he dado el origen de la fila también al cargar, y tampoco.
|
|
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: 13990 |
Enviado: 15/Noviembre/2020 a las 16:56 |
Veamos, hasta que no ejecutas la instrucción me.SrchTipo.RowSource = ... el combo no puede tener ningún valor.
Sólo puede tenerlo a partir del momento en el que cargues el RowSource. Si depende de la modificación del campo Estado, cárgalo en el evento AfterUpdate de dicho campo. De todas formas, me da que necesitamos que amplíes la explicación de que es lo que tienes y que es lo que quieres. |
|
zelarra
Habitual Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Enviado: 15/Noviembre/2020 a las 17:07 |
He grabado un vídeo con más detalles. Espero te sirva para darme un poco de luz:
https://www.dropbox.com/s/a1x5zu4ujaw566x/Video1.avi?dl=0
|
|
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: 13990 |
Enviado: 15/Noviembre/2020 a las 17:12 |
Mejor explícalo aquí ...
|
|
zelarra
Habitual Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Enviado: 15/Noviembre/2020 a las 17:45 |
Vale, a ver si consigo explicarme.
Tengo un formulario continuo, y en el encabezado tengo creado una barra de búsqueda, con un campo para escribir lo que quiero buscar, y una serie de desplegables. Todos que van filtrando el formulario a través de la consulta de origen (Como "*" & [forms]![FVideos]![SrchText] & "*" para el campo; y, por ejemplo, uno de los desplegables sería Como "*" & [forms]![FVideos]![SrchTipo] & "*", que es el que me da el problema). Estos desplegables van enlazados entre sí. Pero la vinculación no lo establezco después de actualizar un desplegable para que actualice el origen de la fila del siguiente, sino al entrar en el desplegable (con un select case compruebo el valor del desplegable anterior (segundo desplegable) / o desplegables anteriores (tercer desplegable y siguientes)). El orden es Estado > Tipo > Programa > Fuente En donde tengo el problema es en el segundo desplegable. El desplegable Estado tiene como valor pretederminado "Descargado". El resto de desplegables, "" (para no tener problemas con valores nulos). Observo que, al entrar en el formulario, y, acto seguido, al entrar en el segundo desplegable (Tipo), y solo cuando selecciono una de las opciones ("Youtube"), no me aparece el valor en el desplegable. En el resto de posibilidades, siempre aparece.
|
|
zelarra
Habitual Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Enviado: 15/Noviembre/2020 a las 17:48 |
Ahora, dónde está el fallo.
Este se encuentra en el evento Después de actualizar ese desplegable Tipo, donde tengo el código siguiente: Private Sub SrchTipo_AfterUpdate() DoCmd.SetOrderBy "Duracion" Call PersonalizarVista(Me, "TVideos", True, "CodigoEstado", DLookup("CodigoEstado", "TEstados", "Estado='" & Me.SrchEstado & "'")) End Sub Function PersonalizarVista(FName As Form, Tabla As String, Optional HayCriterio As Boolean = False, Optional CampoCriterio As String, Optional Criterio As Variant) On Error GoTo err_lbl Dim Registros As Long If HayCriterio = False Then Registros = DCount("*", Tabla) Else Dim Criterio1 As String Criterio1 = CampoCriterio & " = " & Criterio Registros = DCount("*", Tabla, Criterio1) End If DoCmd.GoToRecord , , acLast Select Case Registros Case Is > 5 DoCmd.GoToRecord acDataForm, FName.Name, acPrevious, 3 Case 2 To 5 DoCmd.GoToRecord acDataForm, FName.Name, acPrevious, 1 End Select If Not Registros = 0 Then DoCmd.GoToRecord , , acNewRec End If Salida: Exit Function err_lbl: Select Case Err.Number Case 3075, 2105 Exit Function Case Else MsgBox "PersonalizarVista: " & Err.Number & " " & Err.Description, vbInformation, NombreBD End Select Resume Salida End Function Si desactivo esta última función, de personalizarvista, que utilizo para que me muestre los cinco últimos registros, y no únicamente el nuevo registro, me aparece el valor del desplegable. Ahora bien, no sé cómo poder solucionar esto para que lo ordene, y, además, solo me muestre esos cinco últimos registros.
|
|
zelarra
Habitual Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Enviado: 15/Noviembre/2020 a las 23:17 |
Voy a marcar este hilo como solucionado porque he averiguado porqué lo hace. Muchas gracias, @mihura
|
|
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: 13990 |
Enviado: 16/Noviembre/2020 a las 08:52 |
Pues pon la explicación, así el siguiente que se encuentre con el mismo problema sabrá a que atenerse.
|
|
zelarra
Habitual Unido: 21/Octubre/2020 Localización: España Estado: Sin conexión Puntos: 122 |
Enviado: 16/Noviembre/2020 a las 10:02 |
Sí, claro.
Mira, haciendo pruebas me he dado cuenta de que el origen de fila del desplegable, si está vinculado a uno anterior, debo ponerlo en el evento AfterUpdate de este desplegable anterior; y ponerle un origen de fila, no dejarlo independiente, para que, al abrir el formulario, coja valores (los valores como si no estuviera condicionado por el anterior, no sé si me explico). Si cargo el origen de fila en el evento Load del formulario, y en el GotFocus del desplegable, se pasaba al GotFocus y me borraba el valor. Si alguien no entiende lo que he explicado, o quiere alguna aclaración, puede escribirme sin problemas. Muchas gracias. Un saludo.
|
|
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 |