Por qué un unload me cierra todo el proyecto en diseño ???
Para hacer un sistema de copias de seguridad he añadio el siguiente código al menú que llama al form que permite hacer las copias:
Private Sub MnuCopiaSeguridad_Click()
If MsgBox("para abrir esta pantalla de copias de seguridad se cerrarán automáticamente todas las demás ventanas." & vbCrLf & "Si desea hacerlo pulse 'Sí`, y en caso de no querer por estar metiendo datos en otra pantalla pulse 'No'", vbYesNo, "Aviso importante") = vbYes Then
DescargarTodos "frmMain"
frmCopiaSeguridad.Show 1
End If
End Sub
Public Sub DescargarTodos(EsteNo As String)
Dim Form As Form
For Each Form In Forms
If Form.Name <> EsteNo Then
Unload Form
Set Form = Nothing
End If
Next Form
End Sub
y correctamente descarga cualquier otro formulario que esté abierto.
hago las funciones normales en el form frmCopiaSeguridad PERO cuando cierro éste (con un simple unload me) me cierra todo el proyecto (en tiempo de diseño).
Tendrá algo que ver con el código de descargar el resto de los forms que llamo al entrar ????
Private Sub MnuCopiaSeguridad_Click()
If MsgBox("para abrir esta pantalla de copias de seguridad se cerrarán automáticamente todas las demás ventanas." & vbCrLf & "Si desea hacerlo pulse 'Sí`, y en caso de no querer por estar metiendo datos en otra pantalla pulse 'No'", vbYesNo, "Aviso importante") = vbYes Then
DescargarTodos "frmMain"
frmCopiaSeguridad.Show 1
End If
End Sub
Public Sub DescargarTodos(EsteNo As String)
Dim Form As Form
For Each Form In Forms
If Form.Name <> EsteNo Then
Unload Form
Set Form = Nothing
End If
Next Form
End Sub
y correctamente descarga cualquier otro formulario que esté abierto.
hago las funciones normales en el form frmCopiaSeguridad PERO cuando cierro éste (con un simple unload me) me cierra todo el proyecto (en tiempo de diseño).
Tendrá algo que ver con el código de descargar el resto de los forms que llamo al entrar ????
Me da la impresión que por alguna razón la rutina DescargarTodos (o en otro lado) descarga también el frmMain.
Porque pareciera que al descargar el otro se cierra el programa porque no queda ningún formulario cargado.
Poné esto antes del unload me para ver si hay algún otro form:
MsgBox Forms.Count
Saludos,
Javier
Porque pareciera que al descargar el otro se cierra el programa porque no queda ningún formulario cargado.
Poné esto antes del unload me para ver si hay algún otro form:
MsgBox Forms.Count
Saludos,
Javier
La respuesta que le han dado suena muy acertada, y si es correcta, entonces su problema reside en la forma de iniciar el programa. De casualidad utilizó el asistente para aplicaciones de VB para crear la aplicación inicial? Si es así, el problema es que no hay ningún formulario llamado frmMain. Por qué? Porque su programa tiene en el Sub Main() la siguiente instrucción (o similar):
set formulario=new frmMain
formulario.show
Lo que se muestra es un formulario que es una instancia de la "clase" frmMain, pero no tiene dicho nombre. Cambie las instrucciones anteriores a:
frmMain.show
y listo.
set formulario=new frmMain
formulario.show
Lo que se muestra es un formulario que es una instancia de la "clase" frmMain, pero no tiene dicho nombre. Cambie las instrucciones anteriores a:
frmMain.show
y listo.
