Eliminar un objeto de la base de datos sin antes preguntar es algo muy peligroso, personalmente primero cargo en un cuadro de lista los formularios de la base de datos y valido que el formulario a eliminar no esté abierto.
Formularios en la base de datos
Este formulario se llama formulario3 por tanto está abierto, si hago clic sobre él obtengo.
Hago clic en Aceptar y no pasa nada. Ahora voy a eliminar el formulario frmPRUEBA
Hago clic en Sí y se elimina el formulario.
Efectivamente ya no aparece el formulario.
CÓDIGO DEL EVENTO AL CARGAR EL FORMULARIO
Private Sub Form_Load()
Dim obj As AccessObject, dbs As Object
Set dbs = Application.CurrentProject
For Each obj In dbs.AllForms
Me.lstForm.AddItem obj.Name
Next
End Sub
Este código llena el cuadro de lista con los formularios de la base de datos
CODIGO AL HACER CLIC EN EL CUADRO DE LISTA
Private Sub lstForm_Click()
If CurrentProject.AllForms(Me.lstForm).IsLoaded Then
MsgBox "No puede eliminar el formulario " & Me.lstForm & ", porque está abierto", vbCritical, "Cuidado.."
Else
If MsgBox("¿Está seguro que elimina el formulario?" & vbCrLf & vbCrLf & Me.lstForm, _
vbQuestion + vbYesNo + vbDefaultButton2, "Le informo") = vbYes Then
DoCmd.DeleteObject acForm, Me.lstForm
Me.lstForm.RowSource = ""
Call Form_Load
End If
End If
End Sub
Si quiere el ejemplo lo puede solicitar a [email protected]