Principales respuestas
Procedimiento demasiado largo

Pregunta
-
Buenos días,
Al ejecutar el programa me lanza un mensaje: “Error de compilación” “Procedimiento demasiado largo”, pues bien, he dividido este procedimiento en otros subprocedimientos, no en módulo, ya que necesito que realice ciertas comprobaciones para recibir o enviar respuestas dependiendo de si las cumple o no. He hecho lo siguiente:
Private sub btn_insertar()
‘Voy llamando a los procedimientos hijo1, hijo2,…
Código que me inserta datos
End Sub
Private sub hijo1()
Código que si no cumple pasa a Exit Sub
End sub
Private sub hijo2()
Código que si no cumple pasa a Exit Sub
End sub
Así sucesivamente,
El problema es que dentro de los procedimientos hijo1, hijo2,… tengo varios exit sub y salen si no cumplen unas condiciones dadas continuando en el procedimiento madre (btn_insertar) e insertando datos que no quiero que inserte. No se si me he explicado bien.
¿Puedo hacer que si no cumplen las condiciones en los procedimientos “hijos” pueda hacer también que salga del procedimiento madre?
Gracias
Respuestas
-
Hola:
Yo usaría funciones que devolvieran un valor Boolean dependiendo de si quieres continuar o no, es decir.
Private Function Hijo1() As Boolean If CondicionQueNoQuieresContinuar Then Exit Function ... If OtraCondicionQueNoQuieresContinuar Then Exit Function ... Hijo1 = True ' Indicamos que SI queremos continuar End Function ' La function Hijo2 igual.
Y ahora en tu btn_Insertar(), compruebas el valor de la función:
Private Sub btn_Insertar() If Hijo1() Then If Hijo2() Then ' Codigo que inserta datos End If End If End Sub ' Otra variante sería. Private Sub btn_Insertar() If Not Hijo1() Then Exit Sub If Not Hijo2() Then Exit Sub ' Codigo que inserta datos End Sub
Espero que te sirva
Saludos
- Propuesto como respuesta LG DES jueves, 20 de febrero de 2014 8:36
- Marcado como respuesta José M. Palma miércoles, 5 de marzo de 2014 16:24
Todas las respuestas
-
Hola:
Yo usaría funciones que devolvieran un valor Boolean dependiendo de si quieres continuar o no, es decir.
Private Function Hijo1() As Boolean If CondicionQueNoQuieresContinuar Then Exit Function ... If OtraCondicionQueNoQuieresContinuar Then Exit Function ... Hijo1 = True ' Indicamos que SI queremos continuar End Function ' La function Hijo2 igual.
Y ahora en tu btn_Insertar(), compruebas el valor de la función:
Private Sub btn_Insertar() If Hijo1() Then If Hijo2() Then ' Codigo que inserta datos End If End If End Sub ' Otra variante sería. Private Sub btn_Insertar() If Not Hijo1() Then Exit Sub If Not Hijo2() Then Exit Sub ' Codigo que inserta datos End Sub
Espero que te sirva
Saludos
- Propuesto como respuesta LG DES jueves, 20 de febrero de 2014 8:36
- Marcado como respuesta José M. Palma miércoles, 5 de marzo de 2014 16:24
-