Вопрос

Я слышал на виноградной лозе, что в предстоящем Access2010 есть функция макросов данных, которая впервые добавит функциональность, подобную триггеру, чтобы получить доступ к таблицам двигателей данных. У кого -нибудь есть дополнительная информация об этом? Например, могут ли они создать в коде (ACEDAO, SQL DDL и т. Д.)? Запускается ли макрос данных, если данные изменяются извне пользовательского интерфейса Access, например, через ODBC, OLE DB и т. Д.?

Это было полезно?

Решение

ОК, немного больше информации.

Запускается ли макрос данных, если данные изменяются извне пользовательского интерфейса Access, например, через ODBC, OLE DB и т. Д.?

Да, это так.

Эти истинные триггеры находятся на уровне двигателя данных. Таким образом, использование ADO, DAO или даже редактирования таблиц в виде таблицы в MS-ACCESS означает, что триггеры стреляют. Эти триггеры также будут включать в себя сценарий, в котором на вашем компьютере даже нет MS-Access.

Вам, конечно, понадобится установлен Jet (для оставшейся части этой статьи я буду использовать термин Ace). Помните, что только в Access 2007 команда Access получила право собственности на Jet. Теперь они могут свободно улучшить этот двигатель для своих потребностей. Мы начали видеть некоторые изменения в ACE в 2007 году, и теперь мы увидим гораздо больше изменений в 2010 году. Некоторые из этих функций по -прежнему остаются для меня NDA ... но я буду пролить столько, сколько смогу здесь.

Например, могут ли они создать в коде (ACEDAO, SQL DDL и т. Д.)?

В коде, Perahps, но не с SQL DDL. Триггеры не являются командами SQL. Имейте в виду, что для Oracle, или SQL Server или большинства систем на рынке все они, как правило, имеют свой собственный язык для своих триггеров.

В новом тузе вы напишете, что называется макросом данных. Вы используете редактор Macro в MS-Access. Это старомодные макросы доступа, но редактор был полностью переименован. Новые макросы также имеют подпрограммы, зацикливание, если потом и еще блоки и тип набора записей. Помните, что мы получили возможность создавать временные переменные в макросах 2007 года. В 2010 году это расширено, чтобы включить локальные переменные и выше новых функций.

Синтаксис для существующих команд макросов такой же, как и предыдущие версии. Тем не менее, у нас есть новая Slick IDE вместе со всеми приведенными выше крутые команды. Теперь у нас есть два типа макросов. Макросы пользовательского интерфейса (регулярно, как и раньше), а теперь и новые так называемые макросы данных. Для макроса уровня таблицы не будет смысла отображать сообщения об ошибках на экране. Таким образом, любая зарегистрированная ошибка входит в таблицу. Есть также несколько новых команд журнала, которые позволяют записать свои собственные пользовательские ошибки в эту таблицу. Здесь блестящий и простой дизайн. Вот как выглядит эта таблица журналов ошибок:

alt text
(источник: Kallal.ca)

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

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

Итак, у нас есть: у меня есть две столы

tblFruits:    main data fruit inventory table
id         (autonumber)
Fruit text
OnHand    (number value of fruit in inventory)

tblFruitsOrder
id       (autonumber)
Fruit_id (FK to tblFruts.ID)
QtyOrder (number of fruit to order)

Это простой тест

Таким образом, у нас будет триггер в TBLFruitsOrder, который будет обновлять + поддерживать уровни инвентаризации в TBLFRUIT, когда поле QtyRoder отредактировано или изменено.

Вот как выглядит макрос:

alt text
(источник: Kallal.ca)

Обратите внимание, как очень просто выше. Обратите внимание, что в IDE, если вы нажмете на раздел кода, то вы получите редактирование типа макроса старого стиля, в которое вы можете ввести значения для команды (это похоже на Pre 2010, но теперь параметры и редактирование встречаются в Код, а не панель, которая появляется в нижней части экрана в предыдущих версиях).

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

alt text
(источник: Kallal.ca)

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

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

Вот снимок экрана типов триггеров таблицы, которые у нас есть:

alt text
(источник: Kallal.ca)

Другие советы

Больше информации об этой новой функции была Опубликовано сегодня В блоге команды разработчиков MS Access, и он определенно предоставляет больше информации о важнейшем вопросе, поднятом в комментариях выше.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top