Tengo un formulario para ingresar una gestión, ahí tengo un combo box con una lista, lo que busco es que al botón que guarda el

Tengo un formulario para ingresar una gestión, ahí tengo un combo box con una lista, lo que busco es que al botón que guarda el registro del formulario decirle que si en el combobox elegí un dato me guarde y me abra otro formulario solo si escojo esa opción no las otras que están en el combo box.
No se si es algo similar a una condición Where en la macro abrir formulario. Soy nuevo en access y estoy perdido con este tema.

Tengo un formulario para ingresar una gestión, ahí tengo un combo box con una lista, lo que busco es que al botón que guarda el registro del formulario decirle que si en el combobox elegí un dato me guarde y me abra otro formulario solo si escojo esa opción no las otras que están en el combo box.
No se si es algo similar a una condición Where en la macro abrir formulario. Soy nuevo en access y estoy perdido con este tema.       

Tengo un formulario para ingresar una gestión, ahí tengo un combo box con una lista, lo que busco es que al botón que guarda el registro del formulario decirle que si en el combobox elegí un dato me guarde y me abra otro formulario solo si escojo esa opción no las otras que están en el combo box.
No se si es algo similar a una condición Where en la macro abrir formulario. Soy nuevo en access y estoy perdido con este tema.       

1 respuesta

Respuesta

En lugar de usar una macro, usa código asociado al evento click del botón (presiona los tres puntos en la ventana de propiedades del botón en el evento click y selecciona código en lugar de macro...

Imaginemos que el botón se llama Comando15, el generador te crea dos líneas de código como las siguientes:

Private Sub Comando15_Click()

End sub

Entre ellas tienes que introducir algo parecido al código siguiente:

Private Sub Comando15_Click()
On Error GoTo Err_Comando15_AfterUpdate
    Select Case Me.Cuadro_combinado2
        Case 1
            DoCmd.OpenForm "MiFormulario", acNormal, , , acFormPropertySettings, acWindowNormal
        Case 2
            DoCmd.OpenForm "MiFormulario2", acNormal, , , acFormPropertySettings, acWindowNormal
        Case Else
    End Select
Exit_Comando15_AfterUpdate:
    Exit Sub
Err_Comando15_AfterUpdate:
    MsgBox Err.Description
    Resume Exit_Comando15_AfterUpdate
End Sub

Te explico un poco. En este ejemplo el cuadro combinado se llama Cuadro_combinado2. La línea Select Case Cuadro_combinado2 indica que vamos a ver los distintos valores que podemos tener en el cuadro combinado. Cada línea Case de las que siguen indica que haremos si el valor del cuadro combinado tiene ese valor. Por ejemplo Case 1 indica que si el valor del cuadro combinado es 1 queremos que el programa haga lo que viene a continuación (en el ejemplo abrir el miFormulario. Basta con que pongas debajo de Case 2 lo que quieras hacer (o no escribir nada si no quieres hacer nada y mantener el enfoque en el formulario en donde está el botón) y así con el resto de posibles valores que tenga el cuadro combinado. No tienes porque poner una línea Case por cada valor. Imagina que solo si el valor es 1 o 2 vas a hacer algo y en todos los demás casos quieres hacer otra cosa o no hacer nasa. La línea Case Else sirva para el resto de valores que no hallas definido en líneas Case previas. Es decir, si el cuadro combinado admitiese valores por ejemplo del 1 al 10, en los casos en los que el valor es 1 o 2 (en mi ejemplo) se ejecuta la apertura de un formulario en concreto, y en el resto de los casos (valores de 3 a 10) no se ejecuta nada (o se ejecutaría lo que escribieses a continuación de Case Else).

Solo una última cosa. Si los valores de Cuadro_combinado 2 son de tipo texto en lugar de numérico debes de escribirlos entre dobles comillas. Por ejemplo:

Case "Juan"

Esto se ejecuta si el valor del cuadro combinado tiene seleccionado el valor Juan.

Cordiales saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas