Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

19 Октябрь 2018, 16:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: 1   Вниз
  Печать  
Автор Тема: Ввод данных в форме из связанной таблицы  (Прочитано 842 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Jack-B
Новичок
*
Offline Offline

Сообщений: 3


« Стартовое сообщение: 19 Июнь 2018, 07:53 »

Вроде ситуация не сложная, но как это делается не смог нигде найти.
Есть две таблицы "районы" с полями id, name, group_id
и "группы районов" с полями id, name.
В группах есть записи 0 - северная, 1 - западная и т.д.
Таблицы связаны полями "районы".group_id - "группы районов".id
Хочется сделать форму для заполнения таблицы "районы" но чтобы в поле group_id вбивать не циферки, а выбирать название из таблицы "группы районов", а id подставлять автоматически.
Записан
Jack-B
Новичок
*
Offline Offline

Сообщений: 3


« Ответ #1: 20 Июнь 2018, 06:30 »

Хех. Если долго мучиться, что нибудь получится.
Вот что получилось у меня:
1. Делается форма на основе таблицы "Районы" (не в виде таблицы)
2. Поле ввода group_id меняем на список
3. Входим в группу group_id и меняем свойства списка
3.1 Делаем список "Раскрываемый" - "да"
3.2 Во вкладке "Данные" поле "Поле данных" остаётся без изменения (group_id) - оно будет меняться в таблице при изменении поля
3.2 "Тип содержимого списка" меняется на "SQL [встроенный]" (чем встроенный от не встроенного отличается не знаю, может знающие в комментариях подскажут)
3.3 "Содержимое списка" указывается SQl запрос
Код:
SELECT "name", "id" FROM "Группы районов"
Тут важный момент, в запросе два поля. Первое отображается в списке, поэтому если поменять их местами то будут отображаться идентификаторы групп. Поэтому сначала в SELECT указывается поле "name".
3.4 "Связываемое поле" - это то поле которое будет подставляться из нашего запроса в таблицу "Районы" в соответствии с выбором. Указывается по номеру с нумерацией начинающейся с нуля. В запросе id стоит вторым по счёту, значит ставится 1.

В общем получилось вроде так. Может знатоки поправят что можно сделать лучше. Может кому пригодится.
Записан
economist
Форумчанин
***
Offline Offline

Сообщений: 927


« Ответ #2: 20 Июнь 2018, 08:21 »

Насчет "SQL [встроенный]" - есть два предположения:

1) "SQL [встроенный]" - это значит хранящийся в самом ODB-файле (некоторые движки СУБД поддерживают "хранимые процедуры" и запросы, а ODB-файл может быть только "тонким клиентом" к ним, иначе говоря быть "строкой подключения";

2) "SQL [встроенный]" - это SQL[Native] - значит это режим передачи текста SQL-запроса в саму БД не через парсер BASE, а мимо него. За это же отвечает таинственная кнопка [SQL] в тулбаре и код на StarBasic вида:
Код:
RowSet.EscapeProcessing=FALSE
Если их не использовать - строка SQL-запроса в файле ODB искажается, имена "обкавычиваются", запрос часто
перестает работать, но зато иногда работают другие фишки, например запросы с интерактивным вводом параметров (фишка самого BASE)
Записан

Руб. за сто, что Питоньяк
Любит водку и коньяк!
Потому что мне, без оных, -
Не понять его никак...
Kadet
Новичок
*
Offline Offline

Сообщений: 1


« Ответ #3: 8 Август 2018, 16:39 »

3.4 "Связываемое поле" - это то поле которое будет подставляться из нашего запроса в таблицу "Районы" в соответствии с выбором. Указывается по номеру с нумерацией начинающейся с нуля. В запросе id стоит вторым по счёту, значит ставится 1.
Где ставить "Связываемое поле"? Не нашёл.
И ещё - при выборе из списка - показывает "name" (допустим "западный"), но стоит перейти на другое поле - поле обнуляется. В таблицу записываются нули.
« Последнее редактирование: 8 Август 2018, 16:43 от Kadet » Записан
Jack-B
Новичок
*
Offline Offline

Сообщений: 3


« Ответ #4: 13 Август 2018, 09:01 »

Где ставить "Связываемое поле"? Не нашёл.
Когда создаётся форма с помощью мастера, поле ввода автоматически группируется с текстовой подписью. Чтобы открыть именно свойства поля надо сделать клик правой кнопкой на поле -> группировка -> зайти в группу. После этого двойной клик на поле откроет свойства этого поля ввода.
Записан
Страниц: 1   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!