Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926

Форма на основе многотабличного запроса - изменение записи

26.11.2015, 20:18. Показов 1767. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Поиск по форуму ответов не дал.
Хочу понять принцип реализации.

Итак:
На форму выводятся данные запроса, состоящего из таблиц и других запросов.
Часть данных должна быть не доступна для редактирования, а остальное должно быть сохранено в разные таблицы.

Как правильно это делать? Создавать свободные textbox'ы и кодом всё это обрабатывать или просто запрос должен отвечать определённым требованиям? Или в связях может быть проблема?

Может литературу какую полезную для осознания сего предмета посоветуете.
Спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.11.2015, 20:18
Ответы с готовыми решениями:

Организация многотабличного запроса
Написал такой запрос:select count(x) from (select owner||'.'||table_name from all_tables where OWNER = 'DATA') where *point = 281; В...

Форма на основе запроса
Допустим у меня в БД есть запрос, который перед выполнением выдаёт диалоговое окно, куда нужно ввести данные для поиска (регистрационный...

Как организовать поиск по результатам многотабличного запроса?
Вопрос по базе данных Как организовать поиск по результатам многотабличного запроса (поиск в найденом) По возможности пришлите...

5
 Аватар для VinniPuh
9131 / 6138 / 593
Регистрация: 27.03.2013
Сообщений: 19,997
26.11.2015, 22:15
Цитата Сообщение от corbis Посмотреть сообщение
...Хочу понять принцип реализации....
Когда я чего то недопонимаю или не сильно уверен в верности своих умозаключений из-за слабой теоретической подготовки, не особо представляю, как это будет работать, то создаю запрос в начале на основе одной самой главной таблицы.
По этому запросу создаю форму, пробую как она работает.
Затем в этот запрос (в режиме конструктора) добавляю другую таблицу и нужные поля из нее.
Открываю запрос в режиме просмотра и первым делом проверяю, можно ли добавить запись.
Добавляю нужные добавленные поля в форму, пробую вводить данные, если всё нормально, то продолжаю в том же духе.
Если не правильно, то смотрю на связи (щёлкаю в запросе по линии связи и методом научного тыка выбираю способ объединения).
И т. д. в таком духе.
Если и эти попытки не помогают, то выкладываю свой ЗААРХИВИРОВАННЫЙ пример БД, дабы ЛЮБОЙ желающий помочь, смог посмотреть и поковыряться в примере и выложить вариант решения проблеммы.
Ту часть данных которые должна быть не доступна для редактирования, у формы в режиме конструктора у нужных полей в сойствах ставлю:
Доступ-Нет
Блокировка-Да
1
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
26.11.2015, 22:39  [ТС]
Метод научного тыка всегда рулит Это я собственно и делаю в настоящий момент, но
хочется получить рецепт "шаблона" для такой ситуации.
0
шапоклякистка 8-го дня
 Аватар для texnik-san
3681 / 2241 / 391
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
26.11.2015, 22:50
Цитата Сообщение от corbis Посмотреть сообщение
На форму выводятся данные запроса, состоящего из таблиц и других запросов.
Часть данных должна быть не доступна для редактирования, а остальное должно быть сохранено в разные таблицы.
Как правильно это делать?
Есть трюк, который иногда позволяет в форме редактировать записи даже такого многотабличного запроса, который сам по себе редактировать записи не дает.

В форме на вкладке "данные" ищем свойство "тип набора записей" и выбираем вариант "динамический несогласованный".

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

А для созадния новых записей или редактирования внешних ключей - открывать иначе организованную форму (с вложенными формами для зависимых таблиц)

Добавлено через 1 минуту
Цитата Сообщение от texnik-san Посмотреть сообщение
НО очень рекомендую в такой форме ограничиться только редактированием уже существующих записей, причем не трогая поля, по которым организваны связи между таблицами.
Иначе рискуете получить довольно непредсказуемо располженные данные в таблицах. Не то, что вы ожидали получить, работая с формой.

Добавлено через 5 минут
Цитата Сообщение от corbis Посмотреть сообщение
хочется получить рецепт "шаблона" для такой ситуации.
Рецепт говорит, что в норме одной форме должны правиться данные только одной таблицы. Данные связанных таблиц, от которых эта таблица зависит, могут отображаться, но для исправлений в них следует открывать другую форму. Данные свзяанных таблиц, которые сами зависят от данной - отображаются во вложенных формах и правятся в них.
1
547 / 274 / 50
Регистрация: 03.04.2015
Сообщений: 926
26.11.2015, 23:52  [ТС]
Спасибо за наставления.
0
459 / 246 / 15
Регистрация: 29.10.2014
Сообщений: 1,084
27.11.2015, 22:44
Вложенные формы-не лучший вариант. Если вложенная форма третья по счету(считая и главную)-уже очень тяжелая и неповоротливая форма. Лучше часто бывает связанная ленточная форма в отдельном окне, которая раскрывается даже без фильтра, но маркер в которой устанавливается на запись с кодом, равным выбранному коду значения одного из полей в главной форме по команде:
Visual Basic
1
2
'перейти на запись с таким кодом номера
            DoCmd.FindRecord Me.Form!Ф102!КодЭлемента2 = Forms!Ф103!Код103, , True, , True
Это поиск в связанной форме Ф103 записи с кодом записи, равным значению кода элемента, отображенного (и с подстановкой) в поле КодЭлемента2 в подчиненной форме Ф102 главной формы (Me). Это обсуждалось,работает.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2015, 22:44
Помогаю со студенческими работами здесь

Форма запроса на добавление и поиск записи
На форме помешены компоненты ADOConnection, DataSource, ADOTable. Все условия по подключению к БД и таблице созданы. Так же на форме есть...

Изменение записи в одной таблице на основе другой
На первом скриншоте суть работы формы такая. После выбора чека (1) в ADOTable1 выводятся данные о продаже. К ADOTable1 подключены 2...

Ленточная форма: фильтр+изменение записи
Привет всем Программистам Access!Вопрос у меня возник!Имеется таблица Where! Необходимо сделать форму, чтобы имелась возможность...

Поиск записи в форме на основе значения, которое содержит элемент "Подчинённая форма/отчёт"
Здравствуйте! Многим известно, что при добавлении на форму элемента "Поле со списком" Access предлагает использовать его для...

Добавление записи в Listview(1 форма) через Диалоговое окно(3 форма) другой формы (2 форма)
Всем доброго дня и с наступающими праздниками! Знаю, тема 7 частых вопросов по WinForms уже не раз обсуждалась, и была прочитана, но или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru