Форма LibreOffice Base для редактирования таблицы с помощью запроса

Поэтому я застрял в одной точке на работе. Я получил эту таблицу "IP". Это имеет отношение к другой таблице. Чтобы увидеть "настоящее имя" сущности, я создал запрос.

Смотрите картинку моего запроса к моей таблице IP -> host / hostname

Я хочу создать форму для редактирования записей в tbl_IP, В этой форме я хочу показать связанное имя хоста, чтобы увидеть, на каком IP я смотрю.

Но когда я создаю форму на основе этого запроса, я вижу информацию, но не могу ее редактировать.

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

Может кто-нибудь объяснить, как это сделать?

Заранее спасибо.

1 ответ

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

Использует это

Я думаю, вы можете покопаться, чтобы увидеть, как все остальное построено.

После того, как вы вставите элемент управления таблицей, вам нужно щелкнуть правой кнопкой мыши на полях, чтобы изменить Host ID а также Port ID из числового поля в поле списка.

(Обратите внимание, что комбинированные блоки не могут использоваться для этого в LO, потому что они работают только с одним полем, и вам нужно два поля, идентификатор и что-то, что является удобочитаемой ссылкой на этот идентификатор. В Access поля со списком или списком будут Работа.)

Я специально сделал так, чтобы при поиске Hosts использовался запрос, а при поиске портов использовался SLQ, чтобы вы могли увидеть два наиболее распространенных способа получения раскрывающегося списка.

Иногда SQL лучше, а иногда лучше Query, в зависимости от того, что вы делаете. Если ваши таблицы выложены именно так, вы можете использовать таблицу непосредственно для раскрывающегося списка, то есть field1= отображаемый текст или значение, field2= ключ ID, в этом порядке. Но, как правило, мне нравится сохранять мой Key ID в качестве первого поля во всех моих таблицах, поэтому никогда не используйте этот метод.

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


Другие, не обращавшиеся за общими советами по дизайну, которые я разрабатывал на протяжении многих лет, и я надеюсь, что вы рассмотрите их:

  • Я нахожу таблицы имен во множественном числе, а записи в единственном числе, и осторожно придерживаюсь этого, имеет смысл, например, IPs таблица (содержит несколько записей IP), и IP ID, является целым числом, представляющим или указывающим на конкретную запись. Иногда такие слова, как Data, множественного числа без 's', поэтому вы будете использовать Datum для записи и Data для таблицы.

  • Я думаю, что указатели и цели с одинаковыми именами наиболее полезны, особенно когда ваша база данных растет и возникает путаница относительно того, что указывает на что. Просто проще сохранить одно и то же имя, и больше доказательств того, что он бомба. Другими словами, используйте поле с именем Host ID в первичной таблице, и это указывает на поле с именем Host ID в таблице поиска. (Другие называют это поиском внешнего ключа, но я никогда не находил это имя очень полезным).

  • И я всегда пытаюсь назвать первичный ключ, используя само имя таблицы с суффиксом ' ID', а не какое-либо другое слово или строку текста. Таким образом, когда я смотрю на идентификатор, я точно знаю, с какой таблицей он связан. Так, например, если таблица называется Hostsто первичный ключ всегда Host ID (не Hosts ID потому что это было бы во множественном числе, когда на самом деле идентификатор относится только к одной записи, а не ко всем записям). Например, IP ID, или же IP_ID из вас, как оба работают нормально. Я нахожу это IP ID (с пробелом) читает и печатает легче, потому что это позволяет более сложные имена с несколькими словами, как Word1 word2 word3 ID, Пространство легче набрать, чем подчеркнуть. Но это предполагает, что вам придется процитировать все ваши идентификаторы, что я всегда делаю, но не всегда требуется. Мне нравится строгое соблюдение нескольких основных правил, подобных этому.

Надеюсь, это поможет вам.

Другие вопросы по тегам