Access - No funciona el DropDown en combobox control

 
Vista:
Imágen de perfil de Pelida
Val: 6
Ha disminuido su posición en 64 puestos en Access (en relación al último mes)
Gráfica de Access

No funciona el DropDown en combobox control

Publicado por Pelida (7 intervenciones) el 28/05/2024 09:04:34
Hola a todos

En un formulario tengo un combobox (cuadro combinado) que cambia de forma dinámica es decir en ejecución cada vez que lo selecciono, todo funciona bien excepto el DropDown que no se "autodespliega", envío el código que estoy utilizando.

Gracias de antemano

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Const MarcaSQL1 As String = "SELECT pres_marca.Marca FROM pres_marca;"
Const MarcaSQL2 As String = "SELECT pres_modelo.Descripcion FROM pres_modelo WHERE (((pres_modelo.marca)=[textomarca]));"
Const MarcaSQL3 As String = "SELECT pres_cisterna.descripcion, pres_cisterna.Marca FROM pres_cisterna WHERE (((pres_cisterna.Marca) = [Textomarca])) ORDER BY pres_cisterna.Cisterna;"
 
Private Sub Form_Current()
    Seleccion = 1
    Caracteristicas.RowSource = MarcaSQL1
    Caracteristicas.Requery
End Sub
 
 
Private Sub Caracteristicas_AfterUpdate()
 
    If Seleccion = 1 Then
        Textomarca = Caracteristicas
        Seleccion = 2
        Caracteristicas.RowSource = MarcaSQL2
        Caracteristicas.setfocus
        DoCmd.GoToControl "Caracteristicas"
        Caracteristicas.Dropdown
 
    ElseIf Seleccion = 2 Then
        Textomodelo = Caracteristicas
        Seleccion = 3
        Caracteristicas.RowSource = MarcaSQL3
        Caracteristicas.Requery
        Caracteristicas.setfocus
        DoCmd.GoToControl "Caracteristicas"
        Caracteristicas.Dropdown
 
    ElseIf Seleccion = 3 Then
        TextoCisterna = Caracteristicas
        Seleccion = 1
        Caracteristicas.RowSource = MarcaSQL1
        Caracteristicas.Requery
        Caracteristicas.setfocus
        DoCmd.GoToControl "Caracteristicas"
        Caracteristicas.Dropdown
 
    End If
 
End Sub
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
Imágen de perfil de Eduardo Pérez Fernández

No funciona el DropDown en combobox control

Publicado por Eduardo Pérez Fernández (336 intervenciones) el 28/05/2024 14:49:16
Una recomendación cambie los if por una sentencia SELECT CASE sobran estas lineas

Caracteristicas.Requery
DoCmd.GoToControl "Caracteristicas"
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
Imágen de perfil de Pelida
Val: 6
Ha disminuido su posición en 64 puestos en Access (en relación al último mes)
Gráfica de Access

No funciona el DropDown en combobox control

Publicado por Pelida (7 intervenciones) el 29/05/2024 02:28:59
Hola Eduardo, gracias por tu comentario, el código ha quedado así pero sigue sin hacer el Dropdown (desplegarse)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub Caracteristicas_AfterUpdate()
 
    Select Case Seleccion
        Case 1
            Textomarca = Caracteristicas
            Seleccion = 2
            Caracteristicas.RowSource = MarcaSQL2
            Caracteristicas.SetFocus
            Caracteristicas.Dropdown
        Case 2
            Textomodelo = Caracteristicas
            Seleccion = 3
            Caracteristicas.RowSource = MarcaSQL3
            Caracteristicas.SetFocus
            Caracteristicas.Dropdown
        Case 3
            TextoCisterna = Caracteristicas
            Seleccion = 1
            Caracteristicas.RowSource = MarcaSQL1
            Caracteristicas.SetFocus
            Caracteristicas.Dropdown
   End Select
 
End Sub
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

No funciona el DropDown en combobox control

Publicado por Anonimo (3369 intervenciones) el 30/05/2024 15:00:21
Cualquier método es valido (el IF, el SELECT e incluso un SWICHT o un CHOOSE), siempre que cumpla con el objetivo deseado.

Lo que deseas no lo lograras (no se dan las condiciones) y la condición 'básica' es que se entre en el combo (y en el combo se entra, pero ... no se sale) y si no se llega a salir, no se puede entrar.

Hay una forma de llegar a ese objetivo (pero no la recomienda Microsoft) y es: superponer objetos (algo que aun con 'su problemática') en este caso concreto haría lo mismo con menos código.

En líneas generales:
.- Tres combos superpuestos
.- Cada uno su origen de datos (nada de SQLs y asignaciones dinámicas)
.- En el evento CURRENT se dirige el foco al primer combo
.- A partir de ese momento el primero envía el foco al segundo (que aparece en primer plano, es el 'objeto activo' )
.- El segundo al tercero (que se convierte en el 'objeto activo y pasa al primer plano) y el tercero al primero para cumplir el bucle.

En cada cambio se dan las condiciones adecuadas para que se despliegue su contenido.

La pregunta: ¿Que se pretende obtener con ese método? porque una vez en el bucle no se aprecia (se me puede haber 'escapado'algo') que se pueda cambiar de registro o similar ..
(Cierto, siempre esta a disposición la tecla 'ESC' pero no es un 'método ortodoxo')

¿Porqué no recomienda Microsoft lo de superponer objetos? ... entre otras cosas porque aun superpuestos, las etiquetas (como simple ejemplo) se superponen y mezclan el contenido (suelen tener el fondo trasparente), el cuadro de texto o combo si oculta a los otros objetos (no acostumbra a tener el fondo trasparente) ..

Si tienes interés en ver un ejemplo del método de superposición (con algunos de esos problemas corregidos) solo tienes que solicitarlo.
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
Imágen de perfil de Pelida
Val: 6
Ha disminuido su posición en 64 puestos en Access (en relación al último mes)
Gráfica de Access

No funciona el DropDown en combobox control

Publicado por Pelida (7 intervenciones) el 30/05/2024 15:05:52
Hola, ya probé la opción menos ortodoxa, los 3 combobox no están superpuestos al menos en el diseño, en ejecución se van poniendo a la derecha del cuadro de texto y ocultando el anterior, por esa razón busqué otra forma, 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

No funciona el DropDown en combobox control

Publicado por Anonimo (3369 intervenciones) el 30/05/2024 15:38:14
Cada diseño tiene una finalidad y se desconoce la que se pretende obtener (por lo de trabajar en un bucle de ese tipo), superponerlos es tan sencillo como que todos tengan la misma posición espacial y si se diese el caso, las mismas dimensiones (las del mas alto y del mas ancho).

En fin, la causa de no obedecer a la orden de desplegarse se conoce.
La solución... depende del resultado (sea el práctico o el visual) que necesite obtener el programador.

Por cierto lo 'ortodoxo' es que sean tres sin superposición (que se oculten o no es indiferente).
Lo que no recomienda Microsoft es que se superpongan objetos (en principio para evitar parpadeos en la pantalla al taparse o destaparse en función de ser el objeto activo), el resto ....
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
Imágen de perfil de Joan
Val: 414
Bronce
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

No funciona el DropDown en combobox control

Publicado por Joan (103 intervenciones) el 30/05/2024 11:05:46
Omitiendo la parte del código: DoCmd.GoToControl "Caracteristicas" no te lo hace?

Yo tengo varios combobox que actúan así y uso primero el setfocus, y luego el dropdown 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