Access 2003 función para cerrar todos los formularios (abiertos o modo diseño) menos desde el que se ejecuta

Access 2003 No consiguo una funcion para llamar a un formulario y si este esta abierto .isloaded o en modo diseño u otro estado me pase falso y luego lo cerraria. Vamos al ejecutar un formulario principal me cierre todos los demás cargados o en modo diseño

1
Respuesta
1

Prueba ésta, que te devuelve Falso si el formulario está cargado y lo cierra:

Public Function fncJJER(elForm as Form)
Dim frm As AccessObject
fncJJER=true
For Each frm In CurrentProject.AllForms
  If frm.IsLoaded = True And frm.Name=elform.Name Then
    fncJJER=False
    DoCmd.Close acForm, frm.Name
  End If
Next frm
End Function

Y para ejecutarla: fncJJER Me

Y para cerrar todos los formularios menos el activo:

Public Function fncCierraFormularios(elForm As Form)
Dim frm As AccessObject
For Each frm In CurrentProject.AllForms
  If frm.IsLoaded = True And frm.Name <> elForm.Name Then
    DoCmd.Close acForm, frm.Name
  End If
Next frm
End Function

y para ejecutarla: fncCierraFormularios Me

MUCHAS GRACIAS.

Del primer ejemplo he probado algo parecido pero como el obj form es un obj especial no se como le llamo para que pase como obj form. cuando son long, integer  o string es mas sencillo, pero al ser un obj especial no me sale...

llamada

if fncJJER("nombreFormulario") then

Esto no me funciona, como lo defino al llamarlo .

8-) MUCHAS GRACIAS 

Public Function fncJJER(elForm as Form)

Si le pasas el nombre como cadena de texto (entre comillas), te lo reconocerá como un texto y no como un formulario. Si el formulario que vas a usar en la función no es desde el que ejecutas la función, te será más sencillo modificar la función y pasarle el nombre como texto, así:

Public Function fncJJER(elForm as String)
Dim frm As AccessObject
fncJJER=true
For Each frm In CurrentProject.AllForms
  If frm.IsLoaded = True And frm.Name=elForm Then
    fncJJER=False
    DoCmd.Close acForm, elForm
  End If
Next frm
End Function

y la llamas como ahora: if fncJJER("nombreFormulario") then

Un saludo.


     bit.ly/ForoNkSv 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas