Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
Fedor666
Основоположник на всё
42 / 42 / 2
Регистрация: 22.02.2010
Сообщений: 316
1

Закрытие формы без сохранения записи

22.06.2017, 20:23. Просмотров 1338. Ответов 12
Метки нет (Все метки)

Добрый день!
Сделал форму на основе таблицы для добавления записи. В таблице, естественно, есть обязательные поля. Если хоть чего в любое поле формы написать (хоть единичку поставить), то закрыть форму без сохранения крестиком низя - "Необходимо ввести значение...", "В данное время сохранение невозможно". Нажатие кнопки "ESC" не всем очевидно. Полный отстой! Ну, передумал человек и что теперь? В и-нете ничего найти не могу. Подскажите, пожалуйста, как это лечить.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2017, 20:23
Ответы с готовыми решениями:

Сохранение записи в таблице при выходе из формы без сохранения
Здравствуйте. Делал форму для добавления записи в таблицу. Однако, нужна возможность закрытия формы...

Обновление формы без перехода к первой записи
Подскажите пожалуйста. Как выполнить обновление всех элементов базы, чтобы при этом открытая форма...

Открытие формы на нужной записи из другой формы, источником записи которой является запрос-объединение
В MS ACCESS есть ленточная форма Ф3, источником записей которой является запрос-объединение из двух...

При сохранению записи с формы процедурой SQL Server, срабатывает триггер, но без показа сообщеня
Здравствуйте! Имеется пустая форма, на которую я ввожу данные и клацаю по кнопке "Сохранить" Так...

Перенос id-а открытой записи из Формы 1 в источник записи для Формы 2
Есть форма 1, в ней есть такое поле как id - уникальный идентификатор записи и набор многих...

12
Вячеслав Я
Эксперт MS Access
2810 / 1354 / 213
Регистрация: 13.05.2011
Сообщений: 4,133
22.06.2017, 20:46 2
Fedor666, Если честно, то ни чего не понял, Что сделать, то надо? Если есть обязательные поля, то не заполнив это поле и закрыв форму запись не сохранится. Что надо?
0
Fedor666
Основоположник на всё
42 / 42 / 2
Регистрация: 22.02.2010
Сообщений: 316
22.06.2017, 21:01  [ТС] 3
Начал заполнять форму и передумал. Жмешь на крестик - "Необходимо ввести значение...", "В данное время сохранение невозможно". Надо чтобы форма закрывалась крестиком без сохранения недовведенных данных и без ругани.

Добавлено через 8 минут
Вернее сохранения не происходит, но если хоть одно поле на форме заполнено, то закрыть крестиком без ругани нельзя.
0
mobile
Эксперт MS Access
24345 / 13383 / 2831
Регистрация: 28.04.2012
Сообщений: 14,664
22.06.2017, 21:07 4
Fedor666, надо ловить ошибку на событии Error (Ошибка) формы, анализировать, спросить юзера хочет ли он выйти без сохранения и если да, то закрыть форму. Примерный вариант
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Form_Error(DataErr As Integer, Response As Integer)
    If DataErr = 3314 Then
        If MsgBox("Выйти без сохранения", vbYesNo) = vbYes Then
            Me.Undo
            DoCmd.Close acForm, Me.Name
        End If
        Response = acDataErrContinue
    End If
End Sub
0
22.06.2017, 21:07
Fedor666
Основоположник на всё
42 / 42 / 2
Регистрация: 22.02.2010
Сообщений: 316
22.06.2017, 21:14  [ТС] 5
Форма для ввода одной записи (на всякий)...

Добавлено через 2 минуты
mobile, ругается - "Прервано выполнение макрокоманды Close".
Увидел. Надо имя поставить.
Но все равно "В данное время сохранение объекта невозможно" и что-то там про ошибку при попытке сохранения записи.
0
Вячеслав Я
Эксперт MS Access
2810 / 1354 / 213
Регистрация: 13.05.2011
Сообщений: 4,133
22.06.2017, 21:16 6
Fedor666, Если через макросы, то можно как на примере: На кнопке два макроса: 1 . отменить запись; 2 . Закрыть форму. Смотрите вложение.

Просто скопируйте кнопку к себе и должна заработать.
1
Вложения
Тип файла: rar Пример.rar (24.0 Кб, 16 просмотров)
Fedor666
Основоположник на всё
42 / 42 / 2
Регистрация: 22.02.2010
Сообщений: 316
22.06.2017, 21:20  [ТС] 7
Вячеслав Я, через кнопку закрывается, а крестиком - нет.
Что такое в макро "_AXL"?
0
Вячеслав Я
Эксперт MS Access
2810 / 1354 / 213
Регистрация: 13.05.2011
Сообщений: 4,133
22.06.2017, 21:26 8
Fedor666, Забудьте про крестики в Access и создайте свои (Кнопку с крестиком). Как у другом примере.

Цитата Сообщение от Fedor666 Посмотреть сообщение
Что такое в макро "_AXL"?
А это где вы нашли?
0
Вложения
Тип файла: rar Пример1.rar (25.1 Кб, 8 просмотров)
mobile
Эксперт MS Access
24345 / 13383 / 2831
Регистрация: 28.04.2012
Сообщений: 14,664
22.06.2017, 21:34 9
Лучший ответ Сообщение было отмечено Fedor666 как решение

Решение

Так попробуйте
Visual Basic
1
2
3
4
5
6
7
8
9
Private Sub Form_Error(DataErr As Integer, Response As Integer)
    Select Case DataErr
        Case 3314
            If MsgBox("Выйти без сохранения", vbYesNo) = vbYes Then
                Me.Undo
            End If
    End Select
    Response = acDataErrContinue
End Sub
2
Fedor666
Основоположник на всё
42 / 42 / 2
Регистрация: 22.02.2010
Сообщений: 316
22.06.2017, 21:38  [ТС] 10
mobile, ДА, ДА, ДА! Наконец-то! Огромное спасибо.
0
GTA-Timon
1 / 1 / 0
Регистрация: 04.12.2015
Сообщений: 43
18.03.2018, 19:37 11
Цитата Сообщение от Вячеслав Я Посмотреть сообщение
Fedor666, Если через макросы, то можно как на примере: На кнопке два макроса: 1 . отменить запись; 2 . Закрыть форму. Смотрите вложение.
В таком случае, когда ничего не вводил и нажимаешь эту кнопку "Закрыть" система выдаёт ошибку якобы не может "отменить запись", потому что небыло новой записи. Как можно обойти эту ошибку?

Добавлено через 1 минуту
Цитата Сообщение от mobile Посмотреть сообщение
Так попробуйте

Private Sub Form_Error(DataErr As Integer, Response As Integer)
* * Select Case DataErr
* * * * Case 3314
* * * * * * If MsgBox("Выйти без сохранения", vbYesNo) = vbYes Then
* * * * * * * * Me.Undo
* * * * * * End If
* * End Select
* * Response = acDataErrContinue
End Sub
Не могу понять как применить этот код от Visual Basic в Access'e. Куда его нужно вставить?
0
Eugene-LS
4036 / 2360 / 456
Регистрация: 05.10.2016
Сообщений: 6,559
18.03.2018, 20:16 12
Цитата Сообщение от GTA-Timon Посмотреть сообщение
Куда его нужно вставить?
Спойства формы > Вкладка события > "Ошибка"* ("On Error")
Насчет названия "Ошибка" не уверен, в англ. версии этот пункт называется "On Error"
Жмёте справа на кнопку построителя и оказываетесь в VBE - Туда и вставляйте ...
1
Миниатюры
Закрытие формы без сохранения записи  
GTA-Timon
1 / 1 / 0
Регистрация: 04.12.2015
Сообщений: 43
20.03.2018, 08:46 13
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Спойства формы > Вкладка события > "Ошибка"* ("On Error")
Насчет названия "Ошибка" не уверен, в англ. версии этот пункт называется "On Error"
Жмёте справа на кнопку построителя и оказываетесь в VBE - Туда и вставляйте ...
Миниатюры
Спасибо, но так и не помогло... когда ничего не ввожу в форму и нажимаю кнопку "Закрыть" Access выдаёт ошибку, что команда "отменить запись" в данный момент недоступна
0
20.03.2018, 08:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2018, 08:46

Переход к записи из подчиненной формы к записи главной формы
Подскажите пожалуйста как перейти по выбранной записи в подчиненной форме,к этой же записи в...

Закрытие формы
Ребят, смотрите. У меня на форме есть кнопка. Она выполняет процедуру, как мне на эту кнопку ещё...

Закрытие формы
Доброго времени суток, Два вопроса. Не серчайте за глупость, с VBA не так давно столкнулся....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru