Я создаю много запросов на лету, когда пользователь выполняет определенные действия. Итак, я создам запрос, затем удалю запрос, как только они закроют форму. Я делаю это в рамках события On Close. Он запускается независимо от того, был ли создан запрос или нет. Итак, чтобы предотвратить ошибку, я говорю Resume Next.
Private Sub Form_Close()
On Error Resume Next
DoCmd.Close acReport, "EmployeeDetails"
DoCmd.DeleteObject acQuery, "MyEmployeeDetails"
End Sub