Eliminar formularios en access en vba

Tengo un proyecto de access, el cual necesito borrar todos los formularios e informes cuando llega una fecha

He intentado eliminarlos con el siguiente código

Private Sub Form_Open(Cancel As Integer)
Dim x As String
Dim formulario As Object
DoCmd.Maximize
x = InputBox(" Introduzca la fecha de sistema", " Fecha")
If x = "01/01/2021" Then
MsgBox "CONSULTE AL SERVICIO TECNICO", vbCritical

For Each formulario In CurrentProject.AllForms
DoCmd.DeleteObject acForm

formulario.Name
Next formulario
DoCmd.Quit
Else
End If
End Sub

El problema es que me da error en DoCmd. DeleteObject acForm no se si tendría que nombrar a cada formulario

2 Respuestas

Respuesta
1

Pruebe con este código

Private Sub Form_Open(Cancel As Integer)
    Dim x As String
    Dim formulario As Object
    Dim db As Object  ' Referencia a la base de datos actual
    ' Obtener referencia a la base de datos actual
    Set db = Application.CurrentDb
    DoCmd.Maximize
    x = InputBox("Introduzca la fecha de sistema", "Fecha")
    If x = "01/01/2021" Then
        MsgBox "CONSULTE AL SERVICIO TECNICO", vbCritical
        ' Eliminar todos los formularios
        For Each formulario In db.AllForms
            If formulario.Name <> "NombreDelFormularioActual" Then
                DoCmd.DeleteObject acForm, formulario.Name
            End If
        Next formulario
        DoCmd.Quit
    Else
        ' No se eliminan los formularios
    End If
End Sub

Observe que valido para no eliminar el formulario que está abierto o en uso. Adicioné una referencia a la base de datos actual.

 Set db = Application.CurrentDb

Reemplace "NombreDelFormularioActual" con el nombre de formulario que está utilizando.

Respuesta
1

Si se trata de 'la demo' de una aplicación, solo tendría sentido si no se distribuyese compilada, pues si se distribuye compilada (que es lo más habitual), no se podrán borrar sus objetos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas