Форма в Access при закрытии ругается

Программирование на Visual Basic for Applications
Tatyanka
Немного Иная
Немного Иная
Аватара пользователя
 
Сообщения: 876
Зарегистрирован: 02.12.2004 (Чт) 13:55
Откуда: Киев

Форма в Access при закрытии ругается

Сообщение Tatyanka » 11.01.2005 (Вт) 16:30

У меня в Access при закрытии формы выполняется следующее:
Private Sub Form_Close()
DoCmd.Save
Call PlaySound("D:\Zvuki\zahodi.wav", 1, 1)
End Sub

Если закрывать именно форму, то выполняется без проблем, а если всю базу или сам Access, а форма еще открыта, то ругается так: "Run-time error '2487': Аргумент "Тип объекта" макрокоманды или метода содержит ошибку или пропущен."
Я так думаю, он ругается на save. А как написать, чтоб он сохранял именно эту форму (вернее, данные в ней)? А, может, дело совсем не в этом? Кто знает, подскажите...
Мы - Иные. Мы служим разным силам. Но в сумраке нет разницы между отсутствием тьмы и отсутствием света. Наша борьба способна уничтожить мир. Мы заключаем Великий Договор о перемирии...

SergeySV2
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 06.01.2005 (Чт) 22:06

Сообщение SergeySV2 » 11.01.2005 (Вт) 17:50

Да ты права, он ругается на Save, потому что у тебя не указано к какой форме применять метод Save, потому он пытается применить его к активной форме. А при закрытии всей базы (жмем на крестик), активной формы нет, все формы неактивны, вот и выходит трабл.
Писать надо так:
DoCmd.Save acForm, "МояФорма"

P.S. токо я так и не понял зачем ты делаешь? Access устроен так - когда ты редактируешь тек. запись, то внесенные тобой изменения хранятся в спец. буфере. Как только ты переходишь к другой записи, происходит автомат. сохранение этого буфера в таблицу. Когда проиходит закрытие формы, то перед ее закрытием опять же происходит сохранения буфера в таблицу.
Вообщем, чтобы не сохранить изменения это надо сильно постараться, например специльно не переходя на другую запись (или не закрывая форму) принудительно завершить Access из диспетчера задач... но в этом случае и твой DoCmd.Save в событии Form_Close тоже будет бессилен.

Tatyanka
Немного Иная
Немного Иная
Аватара пользователя
 
Сообщения: 876
Зарегистрирован: 02.12.2004 (Чт) 13:55
Откуда: Киев

Сообщение Tatyanka » 12.01.2005 (Ср) 15:03

Спасибо, SergeySV2, за ликбез. :) Я просто только начинаю работать с Access и просто перестраховываюсь (а вдруг что-то пропадет... :shock: )
Мы - Иные. Мы служим разным силам. Но в сумраке нет разницы между отсутствием тьмы и отсутствием света. Наша борьба способна уничтожить мир. Мы заключаем Великий Договор о перемирии...

SergeySV2
Новичок
Новичок
 
Сообщения: 33
Зарегистрирован: 06.01.2005 (Чт) 22:06

Сообщение SergeySV2 » 12.01.2005 (Ср) 15:26

Tatyanka писал(а):Спасибо, SergeySV2, за ликбез. :) Я просто только начинаю работать с Access и просто перестраховываюсь (а вдруг что-то пропадет... :shock: )


Есть очень хорошая книга по Access'у. Если ты только начинаешь (или даже продолжаешь) изучать Access, то обязательно надо прочитать
Кен Гетц (и другие) - "Access 2002 Разработка настольных приложений"

Сэкономишь себе кучу времени и сил


Вернуться в VBA

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 59

    TopList