Access - Combos filtrados con error

 
Vista:

Combos filtrados con error

Publicado por Angela Soto (87 intervenciones) el 27/03/2006 15:16:34
Hola, tengo un problema: Tengo 4 combox, los cuales los tengo filtrados asi: Combo1 filtrado con Combo2 y Combo3 filtrado con Combox4 (refresca la información), el caso es que cuando eligo algo en el como Combo1 en el Combo3 me aparece información que yo no he seleccionado y cuando elijo algo en el Combo3 se me borra lo que ya habia seleccionado en el Combo1, quiero que se me conserve la información que eligo indiferentemente en el orden en que lo escojo, no se que hacer. Alguien me puede ayudar con esto por favor. Muchas Gracias
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 Alejandro

Mantener selecciones en comboboxes al filtrar en orden

Publicado por Alejandro (4142 intervenciones) el 17/07/2023 23:11:50
Para mantener la información seleccionada en los comboboxes independientemente del orden en el que se elijan, puedes utilizar variables para almacenar los valores seleccionados y luego asignarlos nuevamente a los comboboxes después de que se haya realizado el filtrado. Aquí tienes un ejemplo de cómo puedes hacerlo:

1. Abre el formulario en el modo de diseño en Access.

2. Selecciona el primer combobox (Combo1) y ve a la pestaña "Eventos" en las propiedades del combobox.

3. Haz doble clic en el evento "Después de actualizar" para abrir el editor de código VBA para ese evento.

4. En el editor de código VBA, ingresa el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
Dim valorCombo1 As Variant
 
Private Sub Combo1_AfterUpdate()
    ' Almacena el valor seleccionado en Combo1
    valorCombo1 = Me.Combo1.Value
 
    ' Filtra Combo2 basado en Combo1
    Me.Combo2.RowSource = "SELECT CampoCombo2 FROM Tabla WHERE CampoCombo1 = " & Me.Combo1.Value
 
    ' Restaura el valor seleccionado en Combo1
    Me.Combo1.Value = valorCombo1
End Sub

5. Ahora, selecciona el segundo combobox (Combo3) y ve a la pestaña "Eventos" en las propiedades del combobox.

6. Haz doble clic en el evento "Después de actualizar" para abrir el editor de código VBA para ese evento.

7. En el editor de código VBA, ingresa el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
Dim valorCombo3 As Variant
 
Private Sub Combo3_AfterUpdate()
    ' Almacena el valor seleccionado en Combo3
    valorCombo3 = Me.Combo3.Value
 
    ' Filtra Combo4 basado en Combo3
    Me.Combo4.RowSource = "SELECT CampoCombo4 FROM Tabla WHERE CampoCombo3 = " & Me.Combo3.Value
 
    ' Restaura el valor seleccionado en Combo3
    Me.Combo3.Value = valorCombo3
End Sub

Asegúrate de reemplazar "Combo1", "Combo2", "Combo3", "Combo4", "CampoCombo1", "CampoCombo2", "CampoCombo3" y "CampoCombo4" con los nombres reales de los comboboxes y los campos en tu formulario y tabla.

Este código almacenará los valores seleccionados en variables (valorCombo1 y valorCombo3) antes de realizar el filtrado en los comboboxes. Luego, después de aplicar el filtrado, los valores seleccionados se restaurarán en los comboboxes correspondientes.

De esta manera, podrás mantener la información seleccionada en los comboboxes independientemente del orden en el que se elijan.
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