powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Удаление текущей записи
13 сообщений из 13, страница 1 из 1
Удаление текущей записи
    #39611162
MSerg1968-S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте уважаемые специалисты по Access. Помогите пожалуйста.
У меня есть форма с источником в виде таблицы. Пользователь добавляет записи.
записи проходят проверку по одному из полей. Если проверка не пройдена, запись нужно удалить. Это текущая запись.

Вопрос - как удалить текущую запись, какой командой?

Знаю конечно что me.Recordset.Delete , но беда в том, что только первая запись удаляется хорошо, если следующую запись нужно тоже удалить, то возникает ошибка - "текущая запись отсутствует", и так все остальные.

видел подсказку на форуме в виде такой строки If Not Me.NewRecord Then DoCmd.RunCommand acCmdDeleteRecord
Но смысла ее, увы, не понимаю, всех свойств NewRecord и acCmdDeleterecord
...
Рейтинг: 0 / 0
Удаление текущей записи
    #39611211
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как Вы удаляете? В смысле, нажимаете какую-то кнопку на форме? Или как?

Лично я удаляю командой
Код: vbnet
1.
           CurrentDb.Execute "Delete FROM Таблица WHERE НомерЗап=" @ Me!НомерЗап

Да, если у Вас ленточная форма, то её надо обновить.
...
Рейтинг: 0 / 0
Удаление текущей записи
    #39611220
MSerg1968-S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Joss,
нет-нет, удаление замысливается автоматическое, если пользователь вводит некорректную цифру, то запись удаляется целиком по событию "После обновления" с выводом предупреждения. Обновлять не очень бы хотелось, так как выбрасывает в начало таблицы.
Ведь если руками запись удалить, ничего же не требуется. Те методы, которые я указал как раз такие, но беда в том, что видимо access сбивается со счета, какая запись где, после выполнения me.Recordset.Delete
...
Рейтинг: 0 / 0
Удаление текущей записи
    #39611221
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSerg1968-S, после удаления явно переходина какую-нибудь запись
...
Рейтинг: 0 / 0
Удаление текущей записи
    #39611230
MSerg1968-S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Панург,

Конечно, перехожу и явно. Пользователь, если ввел неверные данные, запись потерял, вводит другую. То есть дальше-то работать можно! но при этом, если он опять неверно вводит, то событие пытается и эту запись удалить. Но уже возникает ошибка "текущая запись отсутствует"
...
Рейтинг: 0 / 0
Удаление текущей записи
    #39611240
MSerg1968-SПользователь добавляет записи.
записи проходят проверку по одному из полей. Если проверка не пройдена, запись нужно удалить. Это текущая запись. Логичнее выполнять проверки на Form_BeforeUpdate и "если проверка не пройдена" - не сохранять.
...
Рейтинг: 0 / 0
Удаление текущей записи
    #39611245
MSerg1968-S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Анатолий ( Киев ),
а скажите пожалуйста, как именно не сохранять запись? Я понял ход мысли, мысль хорошая, но что является командой не сохранения записи? Я что-то не знал такой раньше? Что нужно написать в событии чтобы запись не сохранилась?
...
Рейтинг: 0 / 0
Удаление текущей записи
    #39611255
MSerg1968-Sкак именно не сохранять запись? Я понял ход мысли, мысль хорошая, но что является командой не сохранения записи? У события BeforeUpdate есть аргумент Cancel.
Присвоение любого числа не 0 приведет к отмене сохранения. Запись остается на экране. Ее можно исправить и сохранить или отказаться.
Кстати, Cancel есть и у других событий.
...
Рейтинг: 0 / 0
Удаление текущей записи
    #39611264
bubucha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSerg1968-SЕсли проверка не пройдена, запись нужно удалить
делать проверну "на лету" - тогда и удалять нечего не надо будет
...
Рейтинг: 0 / 0
Удаление текущей записи
    #39611289
MSerg1968-S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bubucha,
Как я сделаю ее на лету, у меня и так все проверки по событиям.
Если я начинаю новую запись делать, то она же в этот момент и образуется и пользователь наполняет поля данными. Но в этот момент в таблице уже (!) есть запись! И вот вдруг на каком-то поле он вводит некорректные данные и запись нужно удалить. Но ведь это уже живая запись в таблице, не виртуальная.
...
Рейтинг: 0 / 0
Удаление текущей записи
    #39611322
Фотография sdku
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSerg1968-S,
Это все уже сделано до нас(не изобретайте велосипед)-проверку проводят на событии доОбновления поля и в случае не соответствия данных отменяют его,курсор при этом остается в поле и не выйдет из него пока поле не будет очищено или в него не введут корректные данные - ведь об этом уже говорили.
(лично мне было бы очень досадно из-за одной,которую я не заметил, ошибки потерять запись в форме из нескольких десятков полей)
...
Рейтинг: 0 / 0
Удаление текущей записи
    #39611337
Фотография Панург
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSerg1968-SЕсли я начинаю новую запись делать, то она же в этот момент и образуется и пользователь наполняет поля данными. Но в этот момент в таблице уже (!) есть запись! И вот вдруг на каком-то поле он вводит некорректные данные и запись нужно удалить. Но ведь это уже живая запись в таблице, не виртуальная. приведу классиков


Литвин П., Гетц К., Гунделой М., Разработка настольных приложений в Access 2002. стр.62 Буферы данных Access
Во время редактирования данных в текущей форме Access создает два буфера,
которые можно использовать для отмены выполненных действий:
- буфер текущей записи;
- буфер текущего элемента управления.
Эти буферы схематически представлены на рис. 2.3. Когда вы перемещаетесь
по записям таблицы, Access загружает в буфер текущей записи значения из
текущей записи источника данных. Кроме того, при переходе от поля к полю данные
из буфера текущей записи загружаются в буфер текущего элемента управления.
В случае изменения значения поля и перехода к другому полю для данного
элемента управления вызываются события BeforeUpdate и AfterUpdate . Между
вызовами обработчиков этих событий Access записывает в буфер значение,
содержащееся в буфере элемента управления. Аналогичным образом, при сохранении
текущей записи (путем явного ее сохранения и перехода к другой записи или
путем закрытия формы) Access заменяет данные записи значениями,
содержащимися в буфере текущей записи.
Если во время редактирования данных в элементе управления вы нажмете
клавишу Esc или выполните команду Edit -> Undo , Access заменит содержимое буфера
текущего элемента управления значением из буфера текущей записи. Но если вы
повторно нажмете клавишу Esc или выполните команду Edit -> Undo Record ,
программа заменит содержимое буфера текущей записи значением таковой.
Пользуясь формами, вы всегда будете редактировать данные в буфере
элемента управления и никогда не сможете изменять их непосредственно в таблицах.
...
Рейтинг: 0 / 0
Удаление текущей записи
    #39611629
Фотография Joss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Панург, +1
MSerg1968-S, учите матчасть.

MSerg1968-S, для интереса, закладки в ленточной форме. Как восстанавливать положение курсора после обновления формы. здесь Почитайте обсуждение.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Удаление текущей записи
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]