** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - [Resuelto] No sale valor seleccionado en combo
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerrado[Resuelto] No sale valor seleccionado en combo

 Responder Responder
Autor
Mensaje
zelarra Ver desplegable
Habitual
Habitual


Unido: 21/Octubre/2020
Localización: España
Estado: Sin conexión
Puntos: 60
Enlace directo a este mensaje 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
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: en línea
Puntos: 12029
Enlace directo a este mensaje 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.
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
zelarra Ver desplegable
Habitual
Habitual


Unido: 21/Octubre/2020
Localización: España
Estado: Sin conexión
Puntos: 60
Enlace directo a este mensaje 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.
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: en línea
Puntos: 12029
Enlace directo a este mensaje 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.


Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
zelarra Ver desplegable
Habitual
Habitual


Unido: 21/Octubre/2020
Localización: España
Estado: Sin conexión
Puntos: 60
Enlace directo a este mensaje 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
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: en línea
Puntos: 12029
Enlace directo a este mensaje Enviado: 15/Noviembre/2020 a las 17:12
Mejor explícalo aquí ...
Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
zelarra Ver desplegable
Habitual
Habitual


Unido: 21/Octubre/2020
Localización: España
Estado: Sin conexión
Puntos: 60
Enlace directo a este mensaje 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.
Arriba
zelarra Ver desplegable
Habitual
Habitual


Unido: 21/Octubre/2020
Localización: España
Estado: Sin conexión
Puntos: 60
Enlace directo a este mensaje 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.
Arriba
zelarra Ver desplegable
Habitual
Habitual


Unido: 21/Octubre/2020
Localización: España
Estado: Sin conexión
Puntos: 60
Enlace directo a este mensaje Enviado: 15/Noviembre/2020 a las 23:17
Voy a marcar este hilo como solucionado porque he averiguado porqué lo hace. Muchas gracias, @mihura
Arriba
Mihura Ver desplegable
Administrador
Administrador
Avatar

Unido: 06/Mayo/2005
Localización: En la dehesa
Estado: en línea
Puntos: 12029
Enlace directo a este mensaje 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.

Jesús Mansilla Castells.
Saludos desde Móstoles.

Access Aplicaciones
Tecsys.es
Arriba
zelarra Ver desplegable
Habitual
Habitual


Unido: 21/Octubre/2020
Localización: España
Estado: Sin conexión
Puntos: 60
Enlace directo a este mensaje 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.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable