У формі, яку я створюю для бази даних MS Access 2010, одне з полів являє собою зовнішній ключ. Я хотів би, щоб це поле відображалося у вигляді текстового поля, а не як комбо або списку, як це звичайно для зовнішніх ключів (головна причина полягає в тому, що списки стануть занадто довгими і незручними для використання, і я хотів би мати користувачі вводять ключ безпосередньо). Однак, я не можу змусити його працювати, щоб я міг безпосередньо ввести зовнішній ключ у цьому текстовому полі. Замість того, щоб взяти зовнішній ключ, який я ввів, і після посилання на існуючий кортеж в іншому відношенні, Access завжди, здається, намагається створити новий tuple в іншому відношенні, що, звичайно, не відбувається, оскільки кортеж з ідентичним ключем вже існує (тобто той, який я спробував посилати).
Простіше кажучи, проблема у мене така: у мене є ряд з ID 100 в таблиці A . Я хочу створити новий рядок у таблиці B , із зовнішнім ключем 100, який використовується для позначення цього рядка таблиці A . Співвідношення таблиць правильно налаштовано в Access. Якщо я редагую таблицю B у вигляді таблиці, я можу безпосередньо ввести зовнішній ключ 100, і все працює так, як я хочу. Однак, якщо я роблю те ж саме на формі Access скаржиться на дублікат ключа, тому що замість простого зберігання зовнішнього ключа 100 в таблиці B , вона також намагається створити цілком новий рядок з ідентифікатором, що повторюється зараз, 100 у таблиці A . Я сподіваюся, що це більш-менш зрозуміло.
Я спробував оголосити поле зовнішнього ключа в таблиці B полем комбінованого пошуку, але якщо я також не змінюю поле форми з тексту на комбо-поле, проблема залишається. Google також змусив мене спробувати вказати наступне як джерело даних для текстового поля зовнішнього ключа у формі:
=DlookUp("[ID]", "[TableA]", "[ID]=" & Forms![Form2]![txtID1])
але я тільки колись отримую синтаксичну помилку з цього. Крім того, файли довідки Access охоплюють лише DlookUp функція до версії 2007 - чи можливо, що ця функція більше не доступна в Access 2010?
Як я можу дозволити користувачам вводити зовнішній ключ безпосередньо в текстове поле форми, без доступу Access намагається створити новий рядок у вказаній таблиці? Чи буде джерельний код даних вище вирішити мою проблему, якщо я можу змусити його працювати?