access текущая запись в форме

Событие Form.Current (Access)

Происходит, когда фокус перемещается к записи, делая ее текущей записью, или когда форма обновляется или повторно.

Синтаксис

выражения. Current

выражение: переменная, представляющая объект Form.

Примечания

Чтобы запустить процедуру макроса или события, когда это событие произойдет, установите свойство OnCurrent имя макроса или [Event Procedure].

Это событие происходит как при открываемой форме, так и в том случае, если фокус оставляет одну запись и перемещается на другую. Microsoft Access запускает процедуру текущего макроса или события до отображения первой или следующей записи.

При запуске процедуры макроса или события при текущем событии формы можно отобразить сообщение или синхронизировать записи в другой форме, связанной с текущей записью. Например, когда запись клиента становится текущей, можно отобразить предыдущий заказ клиента. Когда запись поставщика становится текущей, вы можете отображать продукты, изготовленные поставщиком в форме поставщиков. Вы также можете выполнять вычисления на основе текущей записи или изменять форму в ответ на данные текущей записи.

Если процедура макроса или события выполняет действие GoToControl или GoToRecord или соответствующий метод объекта DoCmd в ответ на событие Open, происходит событие Current.

Событие Current также происходит при обновлении формы или повторном запросе, например, при выборе удаления фильтра или сортировки в меню Records или использовании действия Requery в макрос или методе Requery в Visual Basic коде.

При первом открываемом виде в этом порядке происходят следующие события:

ОткройтеЗагрузка активировать → Current

Пример

В следующем примере процедура текущего события проверяет состояние кнопки параметра «Прекращено». Если выбрана кнопка, в примере указывается красный цвет фонового цвета поля ProductName, чтобы указать, что продукт был прекращен.

Чтобы попробовать пример, добавьте следующую процедуру события в форму, которая содержит параметр Под названием Прекращено и текстовое поле под названием ProductName.

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Источник

Свойство «Текущая запись (OnCurrent)»

Применение

Задает или возвращает значение поля Текущая запись в окне Свойства формы. Возвращает доступное для чтения и записи значение типа String.

выражение — обязательный аргумент. Выражение, которое возвращает один из объектов в списке «Применяется к».

Замечания

Данное свойство полезно для программного изменения действия, выполняемого Microsoft Office Access 2007 при активации события. Например, между вызовами событий можно изменить параметры выражения или переключиться с процедуры обработки события на выражение или макрос в зависимости от обстоятельств активации события.

Событие Current (Текущая запись) происходит, когда фокус переходит на запись, из-за чего она становится текущей, или когда форма обновляется.

В зависимости от варианта, выбранного в окне Построитель (вызываемого нажатием кнопки Построить рядом с полем Текущая запись в окне Свойства формы или отчета), свойство OnCurrent будет принимать одно из следующих значений:

Если выбран построитель выражений, значением будет » =выражение«, где выражение — выражение из окна построителя выражений.

Если выбран конструктор макросов, значением является имя макроса.

При выборе варианта «Программы» значением будет «[Процедура обработки событий]».

Если поле Текущая запись пустое, значением свойства будет пустая строка.

Пример

В следующем примере событие Current (Текущая запись) связывается с макросом Current_Macro для формы Order Entry:

Forms(«Order Entry»).OnDeactivate = «Current_Macro»

Источник

События данных

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

Текущая запись

Событие Текущая запись (Current) происходит, когда очередная запись получает фокус или выполняется повторное обращение к источнику данных формы — таблице или запросу. Таким образом, оно возникает как при открытии формы, так и при переходе от одной записи к другой. Чаще всего это событие используется для синхронизации записей в связанных формах.

Удаление

Событие Удаление (Delete) происходит, когда пользователь пытается удалить запись из формы. Оно происходит до того, как запись реально удаляется из базы данных. Процедура обработки этого события имеет параметр Cancel. Установка значения этого параметра в процедуре равным True позволит предотвратить удаление записи.

До подтверждения Del

Удаление записи из базы данных имеет такое большое значение, что с ним связано несколько событий. После события Удаление (Delete) Access выдает специальное окно, запрашивающее подтверждение удаления записи. Событие До подтверждения Del (BeforeDelConfirm) возникает до появления этого окна. Процедура обработки данного события имеет два параметра: Cancel и Response. Присваивая в процедуре значение True параметру Cancel, можно отменить удаление, и окно подтверждения выдаваться на экран не будет. Так что это еще одна возможность отменить удаление программно (третья возможность отмены будет предоставлена пользователю в диалоговом окне подтверждения удаления). Если же параметру Cancel присвоить значение False, то параметр Response можно использовать, чтобы определить, нужно ли выдавать окно подтверждения. Если Response = 1, то запись будет удалена без подтверждения, если же Response установить равным 0, то Access выдаст окно, запрашивающее у пользователя подтверждение удаления записи.

Замечание

Если окно подтверждения удаления не выдается или событие До подтверждения Del (BeforeDelConfirm) не возникает, проверьте установку флажка Изменения записей (Record Changes) в окне Параметры (Options) (на вкладке Правка и поиск, группа Подтверждение).

После подтверждения Del

Событие После подтверждения Del (AfterDelConfirm) происходит как после подтверждения удаления записи, так и при отмене удаления. Процедура обработки данного события имеет один параметр — status, который принимает значения О, 1 или 2 и определяет, была ли удалена запись. Значение 0 указывает, что запись была успешно удалена, 1 означает, что удаление отменено программой обработки события, а значение 2 указывает, что удаление было отменено пользователем в окне подтверждения удаления. Это событие может быть использовано в программе для проверки, была ли удалена запись.

До вставки

Со вставкой новой записи связаны два события: До вставки (Beforelnsert) и описанное далее После вставки (AfterInsert). Событие До вставки (Beforelnsert) происходит, как только пользователь вводит первый символ в новую запись (одно из полей, необязательно первое), но до того, как запись фактически будет создана. Процедура обработки этого события может быть использована для проверки того, разрешена ли вставка. Процедура имеет один параметр: Cancel. Если установить его значение равным True, то вставка записи будет запрещена. После этого события отменить вставку будет уже нельзя, можно только удалить вставленную запись.

После вставки

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

Событие До обновления (BeforeUpdate), так же как и следующее событие После обновления (AfterUpdate), возникает при любом изменении данных в записи или элементе управления. Это событие может относиться как к элементу управления, так и к записи в целом. Процедура обработки данного события имеет один параметр — Cancel, использующийся для того, чтобы отменить введенные изменения. Для этого ему необходимо присвоить значение True. Данное событие обычно применяется с целью проверки условий на значение в поле таблицы или записи в целом, если эти условия сложные (простые условия обычно задаются в свойстве Условие на значение (ValidationRule) элемента управления). Условия проверяются сразу для нескольких значений, причем в них используются ссылки на элементы управления в других формах. При разных значениях введенных данных выдаются разные сообщения об ошибках.

При невыполнении условий можно отменить введенные изменения перед переходом на другую запись.

В следующем разделе будет описан порядок возникновения событий, относящихся как к элементу управления, так и к записи в целом.

После обновления

Событие После обновления (AfterUpdate) происходит после обновления данных в записи или элементе управления. И хотя обновление уже произошло, можно восстановить старые значения, воспользовавшись свойством OldValue элемента управления. Оно сохраняет старое значение элемента управления, которое сменится только после события После обновления (AfterUpdate).

Замечание

События До обновления (BeforeUpdate) и После, обновления (AfterUpdate), а также До вставки (Beforelnsert) и После вставки (Afterlnsert) не возникают, когда значения элементов управления формы изменяются с помощью программы VBA или макрокоманды УстановитьЗначение (SetValue). Кроме того, события До обновления (BeforeUpdate) и После обновления (AfterUpdate)He возникают для вычисляемых элементов управления.

Изменение

Событие Изменение (Change) возникает в следующих случаях:

Замечание

Событие Изменение (Change) не возникает при изменении значения вычисляемого элемента управления, а также, если с помощью макроса или программы VBA установлено значение текстового поля или поля со списком или если значение поля со списком выбрано из списка.

Некорректная программа обработки данного события может привести к каскадным событиям. Чтобы избежать этого, не следует использовать в настоящей процедуре команды, которые меняют содержимое элемента управления, а также не стоит создавать два и более поля, которые воздействуют друг на друга, например обновляют друг друга.

Отсутствие в списке

Событие Отсутствие в списке (NotlnList) возникает в поле со списком, когда пользователь вводит вручную значение в текстовую часть поля, которое отсутствует в списке, и после этого пытается перейти в другое поле или сохранить запись. Для того чтобы данное событие происходило, нужно присвоить свойству Ограничиться списком (LimitToList) значение Yes. Если это свойство имеет значение No, то разрешается ввод в поле данных, не совпадающих ни с одним значением из списка. Процедура обработки настоящего события имеет два параметра: NewData и Response. Параметр NewData содержит введенные данные, a Response управляет обработкой события и может иметь значения 0, 1 или 2. Значение 0 позволяет вывести на экран стандартное сообщение о том, что введенные данные отсутствуют в списке, и запретить ввод. Значение 1 позволяет вместо стандартного сообщения вывести специальное сообщение, например запрашивающее, следует ли сохранить введенное значение. Новые данные при этом не добавляются в список. Значение 2 разрешает добавить новое значение в список. При этом в процедуре обработки данного события нужно добавить значение к источнику строк для поля со списком, после чего поле обновляется, т. к. Access повторно запрашивает источник строк.

Однако, если источником строк для поля со списком является таблица-справочник, простого добавления значения может оказаться недостаточно. Скорее всего, придется вывести специальную форму, в которой пользователь должен будет заполнить все необходимые поля. После сохранения записи в этой форме новые данные добавляются в список. Типичная ситуация, когда требуются такие действия — добавить нового клиента при выписке ему стандартного документа: счета, накладной и т. д.

Внесены изменения

Событие Внесены изменения (Dirty), так же как и Изменение (Change), возникает в следующих ситуациях:

При обновлении

Событие При обновлении (Updated) возникает при изменении объекта OLE и применяется только к свободным и присоединенным рамкам объекта.

Процедура обработки данного события используется для проверки, были ли данные в объекте OLE изменены после последнего сохранения. Процедура имеет один параметр — Code, который указывает, каким образом обновлялся объект, и может иметь значения 0, 1, 2 и 3. Значение 0 указывает, что данные объекта изменены. Значение 1 указывает, что данные объекта сохранялись приложением, создавшим объект. Значение 2 указывает, что файл объекта OLE закрывался приложением, которое его создало. Значение 3 указывает, что файл объекта OLE переименован создавшим его приложением.

Уход с записи

Событие Уход с записи (RecordExit) происходит всякий раз, когда пользователь пытается выйти (переместить фокус) с текущей записи: перейти к другой записи, закрыть форму, обновить данные в форме и т. д. Процедура обработки этого события может использоваться для проверки корректности данных в текущей записи. Процедура имеет один параметр: cancel. Если установить его значение равным True, то можно запретить пользователю покидать текущую запись.

Отмена

Источник

MS Access: как сослаться на текущую запись?

noavatar32

ПРОБЛЕМКА!
Есть Form для ввода данных в таблицу. Нужно открыть Report с параметром в виде текущего номера записи.

Помогите плиз.
Александр

3 ответа

noavatar32

Originally posted by dkx
ПРОБЛЕМКА!
Есть Form для ввода данных в таблицу. Нужно открыть Report с параметром в виде текущего номера записи.

Помогите плиз.
Александр

Наиболее простой и очевидный способ:
взять номер из контрола, который связан с id твоей записи.

так что ориентируйтесь только на уник. поле в таблице, обычно это поле счетчик

noavatar32

Наиболее простой и очевидный способ:
взять номер из контрола, который связан с id твоей записи.

так что ориентируйтесь только на уник. поле в таблице, обычно это поле счетчик

noavatar32

У меня все работает, вот посмотри, Форма1:

1. Форма должна быть загружена.
2. При составлении/редактрировании SQL запроса в виде строки (в коде Visual Basic), Access вообще не понимает такую ссылку. Т.е. такая ссылка будет работать только в конструкторе запросов или если ее забить в свойства контролов/форм (при этом конечно обеспечив выполнение пункта 1)

Источник

Макрокоманда «НаЗапись»

С помощью макрокоманды НаЗапись можно сделать указанную записьтекущая запись в открытой таблице, форме или результирующий набор запроса в классической базе данных Access или веб-приложении Access.

Настройка

В классических базах данных Access макрокоманда НаЗапись имеет указанные ниже аргументы.

Тип объекта, содержащего запись, которую нужно сделать текущей. Выберите элемент Таблица, Запрос, Форма, Представление, Хранимая процедура или Функция в поле Тип объекта. Чтобы выбрать активный объект, оставьте этот аргумент пустым.

Имя объекта, содержащего запись, которую нужно сделать текущей. В поле Имя объекта указаны все объекты текущей базы данных с типом, определяемым аргументом Тип объекта. Если аргумент Тип объекта оставлен пустым, этот аргумент тоже должен быть пустым.

Запись, которую нужно сделать текущей. В поле Запись выберите вариант Предыдущая, Следующая, Первая, Последняя, Конкретная или Новая. По умолчанию используется значение Следующая.

Целое число или выражение, результатом которого является целое число. Перед выражением необходимо указывать знак равенства ( =). Этот аргумент указывает запись, которую нужно сделать текущей. Аргумент Смещение можно использовать двумя способами.

Если для аргумента Запись задано значение Следующая или Предыдущая, Access перемещается на несколько записей вперед или назад. Количество этих записей определяется аргументом Смещение.

Если для аргумента Запись задано значение Конкретная, Access перемещается к записи с номером, который совпадает со значением аргумента Смещение. Номер записи отображается в поле номера записи внизу окна.

Примечание: Если для аргумента Запись используется значение Первая, Последняя или Новая, Access пропускает аргумент Смещение. Если для аргумента Смещение введено слишком большое значение, Access отображает сообщение об ошибке. Для аргумента Смещение нельзя вводить отрицательные значения.

В веб-приложениях Access макрокоманда НаЗапись имеет только один аргумент.

Запись, которую нужно сделать текущей. В поле Запись выберите вариант Предыдущая, Следующая, Первая или Последняя. По умолчанию используется значение Следующая.

Примечания

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

Используя значение Новая для аргумента Запись, можно переместиться в пустую запись в конце формы или таблицы, чтобы ввести новые данные.

В классических базах данных Access эта макрокоманда аналогична нажатию стрелки под кнопкой Найти на вкладке Главная и выбору команды Перейти. Подкоманды Первая запись, Последняя запись, Следующая запись, Предыдущая запись и Создать команды Перейти оказывают на выбранный объект то же действие, что и значения Первая, Последняя, Следующая, Предыдущая и Новая аргумента Запись. Для перемещения к записям можно также использовать кнопки навигации, расположенные внизу окна.

В классических базах данных Access с помощью макрокоманды НаЗапись можно сделать текущей запись в скрытой форме, если указать скрытую форму в аргументах Тип объекта и Имя объекта.

Чтобы выполнить макрокоманду НаЗапись в модуле Visual Basic для приложений (VBA), используйте метод НаЗапись объекта DoCmd.

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • access сохранение данных на форме
  • access сортировка в форме