Cómo hacer una cadena de "IF" en vba Access

Tengo unos campos SI/NO en un formulario a modo de lista y a lado de cada uno de ellos su cuadro de texto correspondiente. Quiero que si uno de los Si/No queda sin rellenar, que al apretar el botón para ir al nuevo registro te diga: "Si no rellenas el cuadro SI/NO debes rellenar el cuadro de texto" y en caso que se rellenen todos los cuadraditos, que vaya al siguiente formulario. Es por eso que he hecho esta cadena de IF la cual no me funciona bien.

Ahora tal i como lo tengo si relleno todos los cuadros no me va al siguiente formulario y me sale un cuadro de texto como si no hubiera rellenado alguno de ellos.

Private Sub Comando477_Click()
If MotoresSitja = 0 And IsNull(CualMotoresSitja) Then
MsgBox "Debes rellenar Cuál de los Motores está NOK"
ElseIf ReductoresSitja = 0 And IsNull(CualReductoresSitja) Then
MsgBox "Debes rellenar Cuál de los Reductores está NOK"
ElseIf CadenasSitja = 0 And IsNull(CualCadenasSitja) Then
MsgBox "Debes rellenar Cuál de las Cadenas está NOK"
ElseIf CorreasSitja = 0 And IsNull(CualCorreasSitja) Then
MsgBox "Debes rellenar Cuál de las Correas está NOK"
ElseIf CojinetesSitja = 0 And IsNull(CualCojinetesSitja) Then
MsgBox "Debes rellenar Cuál de los Cojinetes está NOK"
ElseIf EngranajesSitja = 0 And IsNull(CualEngranajesSitja) Then
MsgBox "Debes rellenar Cuál de los Engranajes está NOK"
ElseIf CilindrosSitja = 0 And IsNull(CualCilindrosSitja) Then
MsgBox "Debes rellenar Cuál de los Cilindros está NOK"
ElseIf TelerasSitja = 0 And IsNull(CualTelerasSitja) Then
MsgBox "Debes rellenar Cuál de las Teleras está NOK"
DoCmd.CancelEvent
Else
DoCmd.Close
DoCmd.OpenForm "FormRegistroCardayTorre", , , , acFormAdd, acDialog
End If
End Sub

1 respuesta

Respuesta
2

Pues parece raro. Mira, en pequeño

Si relleno todas las casillas

Al pulsar

El código del botón es como el tuyo pero abreviado

Private Sub Comando47_Click()
If CasillaPais = 0 Or IsNull([Pais]) Then
MsgBox "Elige, o casilla o el pais"
ElseIf CasillaCliente = 0 Or IsNull([NombreCliente]) Then
MsgBox "Hasta luego"
DoCmd.CancelEvent
Else
DoCmd.Close
DoCmd.OpenForm "Pedidos"
End If
End Sub

No te fijes en mi operador Or, es porque ya tenía datos, no era cosa de ponerse a escribir

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas