Я не до конца понимаю, почему вы делаете такие вещи. Много ли другой информации хранится с почтовым индексом (например, географические координаты)?
Довольны ли вы тем, что в таблице ZIPCODE хранится много недопустимых кодов? Что произойдет, если пользователь введет что-то очень неправильное, например, АВСТРАЛИЯ?
Кроме того, как связаны таблицы CONTACT и ZIPCODE? Первичным / внешним ключом? Или просто по почтовому индексу?
Если в почтовом индексе нет ничего «волшебного», я бы, вероятно, положил его прямо в таблицу CONTACT.
CONTACT
-------
Name
Account Number
Zipcode
Если вы действительно хотите, чтобы они были в отдельных таблицах, возможно, сделайте следующее:
CONTACT
-------
Name
Account Number
Zipcode
ZIPCODE
-------
Zipcode (Unique)
Тогда вам понадобится скрипт, который сделает проверку за вас. В этом случае вам не нужно использовать IsEmpty (поле).
Возможно, ваш вариант использования выглядит следующим образом:
- Пользователь вводит контактную информацию, включая почтовый индекс
- Вы создаете запись контакта и, при необходимости, запись почтового индекса
Я бы сделал это с помощью скрипта, который пользователь щелкает после ввода почтового индекса (или, если вы используете FileMaker 10, триггер скрипта в поле почтового индекса).
Скрипт будет делать что-то вроде этого:
- Задать переменную $ zipcode CONTACT :: Почтовый индекс
- Перейти к макету Zipcode
- Установить захват ошибок ВКЛ.
- Enter Find Mind
- Установить поле Почтовый индекс $ Zipcode
- Выполнить поиск
- If (Get (Найдено Count) = 0)
- Новая запись
- Установить почтовый индекс $ Zipcode
- Записать записи
- Перейти к макету (оригинальный макет)
Это, я думаю, сделало бы то, что вы просили, но, вероятно, есть ряд лучших решений для решения вашей реальной проблемы.