Abrir formulario por dos condiciones

Quisiera abrir un formulario bajo dos condiciones y la verdad no se como hacerlos, tengo esta instrucción para abrirlo por una condición, pero como digo me interesaría poder hacerlo por dos

Private Sub Comando26_Click()
If IsNull(Cuadro_combinado24) Then
MsgBox "Elige el contribuyente de la lista" & vbCrLf & vbCrLf & " " & vbCrLf & "", vbInformation, "Información"
Me.Cuadro_combinado24.Visible = True
Me.Cuadro_combinado24.SetFocus
Me.Cuadro_combinado24.Dropdown
Else
On Error GoTo sol_err
If VarType(Me.Cuadro_combinado24) = vbNull Then
MsgBox "Elige el contribuyente de la lista.", vbCritical + vbOKOnly, "Error"
Else
DoCmd.OpenForm "FormGenerales", , , "[IdContri] = " & Me.Cuadro_combinado24
DoCmd.Close acForm, "FormMenu"
End If
Salida:
Exit Sub
sol_err:
EligePendientes = Null
If Err.Number = 2501 Then
Resume Salida
Else
MsgBox "Se ha producido el error " & Err.Number & ": " & Err.Description
End If
End If
End Sub

Esta instrucción abre el formulario por el nombre del contribuyente y también quisiera que lo hiciera por el año.

¿Hay un experto que me pudiera decir como hacerlo?

Respuesta
3

Así:

DoCmd.OpenForm "FormGenerales", , , "[IdContri] = " & Me.Cuadro_combinado24 & " AND [Año]=" & Me.txtAño

Suponiendo que el campo en la tabla se llame "Año" y el cuadro de texto en el formulario, "txtAño"

Saludos y garcías por contestar.

Algo hago mal me da este error

Ese error te indica que no existe ningún control que se llame Cuadro_combinado24. Revisa los nombres.

De todas formas, ese error no tiene nada que ver con lo que se añade para abrirlo filtrado por dos condiciones.

Los nombres están bien

Me parece muy raro ese error, justo en esa línea, porque ya trabajas con él previamente. Problema de sintaxis no es, porque es la correcta.

Si le quitas lo añadido nuevo, ¿te da error?

No entiendo la pregunta.

Con un solo criterio que es como lo tenia funciona bien, al ponerle la linea que mandaste es cuando da el error, el formulario lo abro con un botón de otro formulario MENU, no se si tendrá algo que ver

este formulario tiene este origen de control.

Gracias.

La sintaxis es la correcta (aquí puedes ver otro ejemplo Como abrir un formulario que cumpla dos condiciones, siendo una de tipo texto y otra de tipo fecha), teniendo en cuenta que tu filtras por dos números.

Lo que no tiene sentido, para mi, es que al añadir una segunda condición te salte justo ese error concreto, además error de compilación, no de sintaxis...

Si me haces llegar una copia de tu Bd, por la tarde te digo algo

Donde la mando.

Te agradezco tu ayuda, muchas gracias.

Súbela a filebig, dropbox, mega... y pon aquí el enlace para que la descargue

Visto tu archivo, sigo sin encontrar una explicación lógica al error, pero tras hacer un par de pruebas, parece que el error solo salta si seleccionas algo en el primer combinado y nada en el segundo. Si seleccionas valores en los dos combinados, el formulario abre filtrado por las dos condiciones correctamente.

Conclusión: antes de ejecutar el código con la doble condición, valida que se han seleccionado datos en los dos cuadros combinados, y si no fuera así, o avisa o abre solo filtrando por una condición.

Otra cosa que veo en tu código es que el filtro lo estás haciendo mal (usas nombres incorrectos): el cuadro combinado para el año, devuelve el id, por lo que el campo a usar en el filtro sería "IdEjercicio" y no "Ejercicio". Además, como el cuadro combinado se llama "cuadro_combinado5", ese será el nombre que has de usar, y no "IdEjercicio". Es decir, la linea quedaría:

DoCmd.OpenForm "FormGenerales", , , "[IdContri] = " & Me.Cuadro_combinado24 & " AND [IdEjercicio]=" & Me.Cuadro_combinado5

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas