2014-09-06 2 views
1

У меня есть база данных, установленные на MS Access 2007. О выборе BeforeUpdate на свойствах формы, я поместил ниже макрос:VBA не сохраняются, когда MS Access закрыт

Private Sub Form_BeforeUpdate(Cancel As Integer) 
    If MsgBox("Changes have been made to this record." & vbCrLf & vbCrLf & "Do you want to save these changes?", vbYesNo, "Save?") = vbYes Then 
      DoCmd.Save 
     Else 
      DoCmd.RunCommand acCmdUndo 
    End If 
End Sub 

Когда VBA сохраняется, Forms работает как ожидалось. Проблема: когда Access закрыт и снова открыт, форма не спрашивает, нужно ли ее сохранять (т. Е. Код VBA не выполняется). Помогите

Как я могу сделать код VBA постоянным?

ответ

1

Форма BeforeUpdate событие не срабатываетесли в записи или данные любого элемента управления не изменяется. Другими словами, если вы открываете и закрываете форму без каких-либо изменений (вручную или программно), событие никогда не будет запущено. Это может объяснить, почему это не просит вас.

Если вы используете Редактор записей , то вы можете легко определить, будет ли событие инициировано или нет. ЕСЛИ селектор записей переходит в форму, являющийся треугольником к карандашу, даже будет запущен, если не будет, потому что никаких изменений не сделано.

Надеюсь, что это поможет.