powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Форма для ввода данных на основе запроса объединения 2 таблиц
22 сообщений из 72, страница 3 из 3
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33585529
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Объясните, что, по-вашему, "в нормальном виде"? Если СЖАТАЯ, УПАКОВАННАЯ база в которой ТОЛЬКО ОДНА ФОРМА занимает больше 70 Kb? Как я еще могу ее выложить, если не двумя кусками? Могу на мыло кинуть.
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33587498
цец
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
КДОбъясните, что, по-вашему, "в нормальном виде"? Если СЖАТАЯ, УПАКОВАННАЯ база в которой ТОЛЬКО ОДНА ФОРМА занимает больше 70 Kb? Как я еще могу ее выложить, если не двумя кусками? Могу на мыло кинуть.
Не пробовали удалить несущественные части? Не факт, что нужны тысячи записей, чтобы понять, как изменить запрос. Не нужны суперсложные формы, чтобы найти принципиальное решение проблемы.
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33587766
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Какие записи в форме?! Или Вы предлагаете удалить из формы элементы управления? Я ранее (20 февраля) выложил базу, где удалено все, что не нужно (и записей тоже минимум). Потом кое-что подправил в форме, которая вызывала у меня вопросы и выложил ее (3 марта) отдельно (только форму). Теперь ее надо импортнуть в предыдущий вариант базы. Я не прикалываюсь, просто не знаю как сделать по-другому.
И еще. Народ, убедительная просьба, если кому просто делать нечего и нечего сказать по существу - не засоряйте эфир.
З.Ы. Где же все-таки спецы? Случай, имхо, интересный! Неужели профессиональное самолюбие не задето?
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33593697
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну хоть кто-нибудь что-нибудь толковое может посоветовать? Неужто такой уникальный случай? Может на каждую связь "1 - многие" сделать подчиненную форму?
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33594014
CookieMonster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошу прощения, был очень занят :)

кошмар, как все в твоей базе напутано...
1. #Name означает, что название поля, на которое ты сослался в источнике контрола, не найдено среди полей рекордсета-источника формы.
- вместо trelLPTLEG.memREMARK ("Примечание" верхнее) нужно memREMARK_LEG,
- вместо trelLPTDET.memREMARK ("Примечание" нижнее) - memREMARK_DET,
- вместо chrTAXON_TABL ("Комбинация") - idsTAXON_TABL_ID.

2. Сообщение "Введенное значение не подходит для данного поля. ..." не может не выскакивать, потому что источником для контрола (возьмем, к примеру контрол "Точка") назначено текстовое поле (для "Точки" - chrPOINT_LEG_TABL_DESCRIPTION), а ввод данных в контрол осуществляется на основе комбобокса-справочника, возвращающего числовое значение.
И таких контролов у тебя там много... штуки три...

Пока рекордсет был необновляемым, это не вредило данным, но как только ты стал использовать несогласованный набор данных, открылась возможность прямого редактирования текстовых полей в справочниках (ведь это они указаны у тебя в качестве источников контролов). Форма-то, конечно, ругается, что данные не того типа, но при этом благополучно редактирует их, вставляя преобразованное в текст значение ключа из комбобокса.
Получается катастрофа.
Так что я бы не стал спешить с использованием несогласованного типа данных.

При организации ввода на основе комбобокса-справочника нужно организовывать ввод/обновление ТОГО поля, которое содержит ССЫЛКУ на позицию справочника. В твоем примере источником контрола
- "Точка" должно быть поле idsPOINT_LEG_TABL_ID из таблицы trelLPTLEG (это поле надо добавить в запрос-источник формы), так как это ссылка на позицию справочника.

3. В таблице POINT_LEG_TABL у тебя каждая точка имеет ссылку на район, в котором находится (табл. DISTRICT_TABL), а район, соответственно, -на область (PROVINCE_TABL). Таким образом, изменение в контроле "Точка" автоматом влечет изменение в контролах "Район" и "Область" (только нужно их обновить).
Если преобразовать эти контролы ("район" и "область") в текст-боксы, оставив их источники данных в таком виде, как сейчас, то пользователь сможет редактировать их текущее значение, то есть править запись справочника.
Если оставить контролы "Район" и "Область" в виде комбобоксов (поменяв поле в источнике данных на правильное - по аналогии с контролом "точка"), то пользователь сможет перевести любую точку в любой район, а любой район - в любую область.
Так себе работа с данными получается. Но все это возможно только при использовании несогласованного набора данных, так что еще вот еще один довод в пользу того, чтоб не спешить с ним.

4. Рекордсет станет обновляемым, если ты удалишь из запроса таблицы PROVINCE_TABL и DISTRICT_TABL. Впрочем, надо сперва понять логику действий, совершаемых через форму - тогда и с набором таблиц определяться.

5. У тебя в тексте названия точки содержатся заодно и район, и область. Зачем такое дублирование, если есть отдельные справочники?

6. Какая странная схема данных...

Тебе никто не смог помочь потому, что ты очень усложнил оказание помощи. Мне, например, пришлось специально искать и устанавливать Тотал Коммандер.

И вообще, у тебя сравнительно простая задача, но ты ее максимально запутал...
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33594065
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CookieMonster, СПАСИБО!
Попробую ответить на некоторые вопросы, извиняюсь, если будет не по порядку или нелогично.
1. С #Name вроде разобрался - не выскакивает.
2. Я уже к этому подошел, а ты окончательно развеял мои сомнения. Теперь обмозгую твои рекомендации.
3. Пропускаю, т.к. он требует ответа что делает форма (см. п.4.)
4. Наверное, надо объяснить что делает база вообще (вернее, должна делать в проекте), тогда будет понятно, что делает форма. База для личного пользования отслеживает всю какую только можно в подобную базу загнать инфу о коллекции Lepidoptera. Но не только об объектах коллекции (экземплярах), но и видах (=таксонах видового уровня), к которым эти экземпляры относятся (в основном на основе литературных данных + личные наблюдения + данные об экземплярах в коллекции).
Вот эта форма конкретно для экземпляров. Т.е. экземпляры ловятся (когда, где, кем, при каких обстоятельствах, каким способом и т.д.), им присваиваются номера и загоняется вся эта информация. Потом они определяются, т.е. соотносятся с каким-л. таксоном видового уровня (видом), который, в свою очередь, входит в таксон более высокого уровня и т.д. и это тоже загоняется в базу.
Контролы для области и района на этой форме - это я хотел сделать последовательное динамическое обновление: выбираем область - ограничивается список районов, выбираем район - ограничивается список точек. Чтобы быстрее редактировать/вводить данные. А так в общем-то сами по себе они не очень нужны, разве что для запросов. В далеком будущем планируется для точек загнать координаты и попробовать обрабатывать все это с помощью ГИС, но до этого еще ОЧЕНЬ ДАЛЕКО.
5. Да, в принципе, дублирование ни к чему. Хотя оно и не сильно мешает, но могу и убрать.
6. Ты еще ВСЮ схему не видел :) Там %-|
Литературные данные, информация о таксонах (а у них куча характеристик - ареалы, синонимы, кормовая база), программное выбрасывание итоговых данных в Excel и построение диаграмм, в общем, если будет желание могу написать подробнее, а если нет то не стоит забивать голову. Впрочем, проектирование БД - это отдельная песня и я вполне согласен с тем, что схема данных сырая и над ней еще работать и работать. Надо книжку какую-н. почитать... Дейт с "Основами..." подойдет?

Вот уж не мог подумать, что Total Commander это такая проблема. А у нас везде стоит. А где не было и люди пользовались (трахались) с Проводником - моими стараниями появился. А там тебе и упаковка-распаковка и синхронизация и все что хочешь. А ты чем пользуешься? Может, я от жизни отстал?
Mdb лучше rar'ом пакуются? Пожалуйста, могу все примеры в .rar выкладывать, тогда Total Commander не нужен.

Я бы поспорил с тем, что у меня сравнительно простая задача... Весь вопрос в том, с чем сравнивать.
Еще раз спасибо. Меня тут недельку не будет, а потом я топик снова подниму.
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33595257
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пардон, Дейт "Введение в системы баз данных".
Что-н. порекомендуешь по проектированию БД?
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33608895
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я вернулся.
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33610042
CookieMonster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наверное, ничего не буду рекомендовать, потому что на эту тему много хорошей литературы. Если, читая Дейта, реально начинаешь лучше понимать, как строить БД, то читай. Я таким подходом руководствуюсь.

Ты можешь создать файл в MS Visio и взять в него структуру твоей БД? А потом положить этот файл сюда. Только с пояснениями, что каждая таблица содержит...

Ты базу сам с нуля создавал или переделываешь чужую?

Форму, которую мы обсуждали, сам делал или она чужая? Насколько критично, чтоб форма была организована именно так, как у тебя: с кучей кнопок, в том числе с переделанной навигацией по записям?
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33610069
CookieMonster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Посмотри прикрепленную базу.
Элементы формы cboProvince и cboDistrict я сделал несвязанными.
Источник записей для cboDistrict ограничивается выбранным значением элемента cboProvince, а для cboPointLeg - выбранным значением элемента cboDistrict.
Добавил события cboProvince_AfterUpdate и cboDistrict_AfterUpdate.
Также добавил событие cboPointLeg_DblClick, которое, помимо двойного щелчка, вызывается еще и переходом по записям из события Form_Current.

По-хорошему из названия точки, хранящегося в таблице, все же нужно убрать название области и района. А в источнике записей элемента cboPointLeg тогда можно сделать запрос, который соберет тебе нужную строку, взяв данные из трех таблиц: область, район и точку. Только тогда нужно чуть поразвернутей незвать области в таблице PROVINCE_TABL.
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33613191
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Класс! Спасибо!
А что это за зверь MS Visio и где он живет?
Базу создавал сам, так что сорри... Уж на что ума хватило... И форму соответственно тоже сам делал... Ну, конечно, где какие прибамбасы красивые нашел тоже попробовал применить.
Не то чтобы критична именно такая форма, но удобно, когда информация об экземпляре на одной форме, никуда не надо лазить, все перед глазами.
Т.е. я старался реализовать несколько подходов. Во-первых, структура базы отражает реальные взаимоотношения между реальными объектами. Хорошо это или плохо пока не знаю. Во-вторых, близкая по смыслу (и соответственно обработке) информация помещается на одну форму. Вот почему эта frmInputData такая сложная. Мне не так критична скорость (однопользовательская БД на современном компе отрабатывает практически любой сложности формы и код с более-менее приличной скоростью), главный критерий - удобство и точность вводимой информации.
Я так понял, что блокировка элементов управления, задаваемая через контекстное меню на этой форме, не катит? Как же тогда застраховаться от ошибочного введения данных (читай, нечаянных нажатий)?
Попробую пока кое-что переделать (в структуре по персоналиям) и убрать дублирование информации из точек (тут ты совершенно прав). Просто раньше я хотел подстраховаться, а то бывают одинаковые названия населенных пунктов. Поди потом разбери из каких они районов.
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33615805
CookieMonster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MS Visio содержится в английской версии пакета MS Office 2003. В принципе, легко можно поставить как отдельный продукт. Среди прочего Визио позволяет взять структуру из базы МДБ или с SQL-сервера. Удобно для анализа этой самой структуры. Возможно создание базы из структуры файла Визио, но это, если я правильно помню, требует установки Visual Studio.
Визио, ессесно, не единственный подобный продукт.

Насчет базы спросил потому, что схема данных (тот фрагмент, что есть в твоем примере) содержит дубли таблиц. А зачем, я не понял.

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

Если произошло какое-либо изменение данных в форме, то ее свойство Dirty становится True (Me.Dirty=True). Его и можно использовать, чтоб проверять, вносились ли изменения.
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33615906
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть Office 97, 2000, 2002 и все русские версии, а также Visual Studio 6.0. А MS Visio только в английской 2003? Что еще можно использовать и где это качнуть?
Схема содержит дубли таблиц, если имеются ввиду таблицы с номером 1 после названия, то это сам Access ставит таким образом таблицы подстановки. Если же под дублями подразумевается ненужное дублирование информации, то это моя недоработка.
Про дублирование родных навигационных кнопок - это я у Гетца списал. У меня уже была такая форма в базе на работе, я ее просто импортнул и все.
Про Dirty я знаю, но мне казалось что проще не допускать СЛУЧАЙНОГО внесения изменений, чем проверять, были ли они и какие именно - случайные или намеренные. Впрочем, если блокировку применить нельзя, то можно наложить на кнопки прозрачные рамки и обрабатывать клики по ним. Таким образом блокировки кнопки нет, но и просто так не нажмешь, имхо.
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33624738
CookieMonster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насчет инструментов пректирования бд можно, видимо, почитать в форуме по проектированию баз данных, который есть на этом сайте.
...
Ну, в любом случае, тебе видней, что именно ты хочешь видеть в собственных формах
...
Ок, желаю дальнейшей успешной разработки и обновляемых рекордсетов
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33644833
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CookieMonster, пока ищу MS Visio, такой вопрос. Я немножко поправил форму frmInputData, все фамилии, которые были в трех таблицах свел в одну. Еще мне помогли с запросом на выборку ("Связка..." - в базе) из таблицы TAXONS_TABL, которая содержит иерархические данные.
Теперь озадачился способом который бы позволил ограничивать содержимое поля со списком "Комбинация" в зависимости от значения поля со списком "Семейство" - ведь они как бы ненапрямую связаны.
Но и с прямой связью не все получилось. Поскольку таблица с фамилиями одна, а значения оттуда дважды входят в таблицу trelLPTLEG, возникла трудность с выводом фамилий в поле со списком "хранится" - выводятся коды. Если сможешь, помоги.
Прикладываю новый вариант урезанной базы со всем тем, о чем сказал выше. Извини, никак не получается втиснуть в один кусок.
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33644834
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33644837
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33656801
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CookieMonster, что-то ты замолчал...
Мне частично удалось сделать то что я хотел. А именно:
по значению в комбобоксе "Комбинация" выводится текущее значение комбобокса "Семейство", а по апдейту значения "Семейство" ограничивается список для "Комбинация". Подробности можно посмотреть в приложенной урезанной базе (да что ж такое, сколько ни вырезаю, как ни сжимаю - все равно больше 70 Kb!). Из этой последней базы нужно импортнуть и соответственно заменить/добавить все объекты в предыдущем варианте от 4 апреля.
Но вот коды в комбобоксе "хранится" заменить на фамилии пока не удалось. Возможно, надо еще подумать.
Спасибо тебе за приведенные ранее технические решения, своими нынешними "достижениями" я обязан им!
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33656808
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33656811
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33665538
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ! Подскажите, кто знает!
Еще раз кратко суть проблемы. В два подстановочных поля - idsAUTHOR_TABL_ID и idsAUTHOR_TABL_LEG_ID таблицы trelLPTLEG заносятся значения из таблицы AUTHORS_TABL. В таблице trelLPTLEG и запросе, в котором она участвует, выводятся фамилии, все нормально. В форме же на основе запроса в поле со списком "Собрал" (idsAUTHOR_TABL_LEG_ID) выводятся фамилии, а в поле со списком "хранится" (idsAUTHOR_TABL_ID) - коды. В чем дело? Подход к заполнению полей один и тот же.
...
Рейтинг: 0 / 0
Форма для ввода данных на основе запроса объединения 2 таблиц
    #33668288
КД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не верю, что никто не знает!
...
Рейтинг: 0 / 0
22 сообщений из 72, страница 3 из 3
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Форма для ввода данных на основе запроса объединения 2 таблиц
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]