Llamar un procedimiento desde otro procedimiento

22/05/2010 - 17:21 por ElProfe | Informe spam
Saludos amigos del foro:

Otra de mis historias por si alguien desea darme una mano.

Tengo dos procedimientos, uno que "IniciaPeriodo" y otro que hace
"BackUp".
-El que hace "BackUp" debe funcionar independiente desde un botón
-El que "IniciaPeriodo" debe funcionar desde su propio botón,pero
pasando primero por "BackUp" y luego terminando de hacer lo suyo.
-Los dos cuentan con sendos avisos informativos para el usuario.
Lo que pretendo es que cuando el usuario haga clic en "BackUp" se
muestren los avisos informativos de este procedimiento.
Pero cuando el usuario elija el botón "IniciaPeriodo" solo se deben
mostrar los avisos informativos de este procedimiento y no así los del
procedimiento "BackUp" que termina siendo llamado en una de sus lineas
por "IniciaPeriodo"

Tengo algo como esto, con la salvedad que se muestran todos los avisos
informativos habidos y por haber.

Public Sub Inicio():
Avisa que iniciará datos
PaQueSepaBackUp = 123
Llama a Backup
Si no hay datos informa
Si hay datos los borra e incia datos
End Sub

Public Sub BackUp():
If PaQueSepaBackUp = 123 then goto Salto1
No mostrar mensaje si llamado viene de Inicio
Avisa que hará un backup
Si no hay datos informa que no puede hacerlo
Salto1:
End If
Si hay datos hace el backup
If PaQueSepaBackUp = 123 then goto Salto2
No mostrar mensaje si llamado viene de Inicio
Avisa que hizo backup
Salto2:
End If
End Sub

Por favor, una alma caritativa que me saque de la ignorancia y me diga
porque no me está funcionando (bueno, si es que debería funcionar, que
supongo que si!)

Gracias anticipadas,

Cordial saludo,

ElProfe
 

Leer las respuestas

#1 Héctor Miguel
22/05/2010 - 19:54 | Informe spam
hola, Manuel !

Tengo dos procedimientos, uno que "IniciaPeriodo" y otro que hace "BackUp".
- El que hace "BackUp" debe funcionar independiente desde un boton
- El que "IniciaPeriodo" debe funcionar desde su propio boton, pero pasando primero por "BackUp" y luego terminando de hacer lo suyo.
- Los dos cuentan con sendos avisos informativos para el usuario.
Lo que pretendo es que cuando el usuario haga clic en "BackUp" se muestren los avisos informativos de este procedimiento.
Pero cuando el usuario elija el botón "IniciaPeriodo" solo se deben mostrar los avisos informativos de este procedimiento
y no asi los del procedimiento "BackUp" que termina siendo llamado en una de sus lineas por "IniciaPeriodo"
Tengo algo como esto, con la salvedad que se muestran todos los avisos informativos habidos y por haber.



1) todos los procedimientos son "Public" (por omision) y no necesitas establecerlo (a menos que los necesites "Private")
2) puedes "pedir" argumentos (opcionales) y el procedimiento seguira disponible (pero no se mostrara en los dialogos de macros)
3) puedes ejecutar/asignar/... este tipo de procedimientos escribiendo su nombre en la referencia correspondiente (ejecutar/asignar/...)
4) siguiendo con el mismo "cripticismo" de tu muestra, prueba con algo +/- como lo siguiente:

Sub BackUp(Optional NoAvisar As Boolean = False)
' si no hay datos, informa que no se hara nada (y termina el procedimiento) <= esta parte, TE TOCA !!!!
If NoAvisar Then Goto Avisado
' aqui se muestra el aviso de inicio <= esta parte, TE TOCA !!!!
Avisado:
' aqui se realizan las acciones ... <= esta parte, TE TOCA !!!!
If NoAvisar Then Exit Sub
' aqui se muestra el aviso de terminado <= esta parte, TE TOCA !!!!
End Sub

Sub Inicio()
' si no hay datos, informa que no se hara nada (y termina el procedimiento) <= esta parte, TE TOCA !!!!
' aqui se muestra el aviso de iniciar <= esta parte, TE TOCA !!!!
' luego se llama al "Backp" evitando los avisos:
BackUp True
' luego se borran los datos para reinicializar para otra ejecucion del procedimiento <= esta parte, TE TOCA !!!!
End Sub

si cualquier duda (o informacion adiconal mas... "concreta")... comentas ?
saludos,
hector.

__ el (pseudo)codigo expuesto __
Public Sub Inicio():
Avisa que iniciara datos
PaQueSepaBackUp = 123
Llama a Backup
Si no hay datos informa
Si hay datos los borra e incia datos
End Sub

Public Sub BackUp():
If PaQueSepaBackUp = 123 then goto Salto1
No mostrar mensaje si llamado viene de Inicio
Avisa que hará un backup
Si no hay datos informa que no puede hacerlo
Salto1:
End If
Si hay datos hace el backup
If PaQueSepaBackUp = 123 then goto Salto2
No mostrar mensaje si llamado viene de Inicio
Avisa que hizo backup
Salto2:
End If
End Sub

Preguntas similares