|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Объясните, что, по-вашему, "в нормальном виде"? Если СЖАТАЯ, УПАКОВАННАЯ база в которой ТОЛЬКО ОДНА ФОРМА занимает больше 70 Kb? Как я еще могу ее выложить, если не двумя кусками? Могу на мыло кинуть. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2006, 23:01 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
КДОбъясните, что, по-вашему, "в нормальном виде"? Если СЖАТАЯ, УПАКОВАННАЯ база в которой ТОЛЬКО ОДНА ФОРМА занимает больше 70 Kb? Как я еще могу ее выложить, если не двумя кусками? Могу на мыло кинуть. Не пробовали удалить несущественные части? Не факт, что нужны тысячи записей, чтобы понять, как изменить запрос. Не нужны суперсложные формы, чтобы найти принципиальное решение проблемы. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2006, 17:55 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Какие записи в форме?! Или Вы предлагаете удалить из формы элементы управления? Я ранее (20 февраля) выложил базу, где удалено все, что не нужно (и записей тоже минимум). Потом кое-что подправил в форме, которая вызывала у меня вопросы и выложил ее (3 марта) отдельно (только форму). Теперь ее надо импортнуть в предыдущий вариант базы. Я не прикалываюсь, просто не знаю как сделать по-другому. И еще. Народ, убедительная просьба, если кому просто делать нечего и нечего сказать по существу - не засоряйте эфир. З.Ы. Где же все-таки спецы? Случай, имхо, интересный! Неужели профессиональное самолюбие не задето? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2006, 22:14 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Ну хоть кто-нибудь что-нибудь толковое может посоветовать? Неужто такой уникальный случай? Может на каждую связь "1 - многие" сделать подчиненную форму? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2006, 18:21 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
прошу прощения, был очень занят :) кошмар, как все в твоей базе напутано... 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. Какая странная схема данных... Тебе никто не смог помочь потому, что ты очень усложнил оказание помощи. Мне, например, пришлось специально искать и устанавливать Тотал Коммандер. И вообще, у тебя сравнительно простая задача, но ты ее максимально запутал... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2006, 23:23 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
CookieMonster, СПАСИБО! Попробую ответить на некоторые вопросы, извиняюсь, если будет не по порядку или нелогично. 1. С #Name вроде разобрался - не выскакивает. 2. Я уже к этому подошел, а ты окончательно развеял мои сомнения. Теперь обмозгую твои рекомендации. 3. Пропускаю, т.к. он требует ответа что делает форма (см. п.4.) 4. Наверное, надо объяснить что делает база вообще (вернее, должна делать в проекте), тогда будет понятно, что делает форма. База для личного пользования отслеживает всю какую только можно в подобную базу загнать инфу о коллекции Lepidoptera. Но не только об объектах коллекции (экземплярах), но и видах (=таксонах видового уровня), к которым эти экземпляры относятся (в основном на основе литературных данных + личные наблюдения + данные об экземплярах в коллекции). Вот эта форма конкретно для экземпляров. Т.е. экземпляры ловятся (когда, где, кем, при каких обстоятельствах, каким способом и т.д.), им присваиваются номера и загоняется вся эта информация. Потом они определяются, т.е. соотносятся с каким-л. таксоном видового уровня (видом), который, в свою очередь, входит в таксон более высокого уровня и т.д. и это тоже загоняется в базу. Контролы для области и района на этой форме - это я хотел сделать последовательное динамическое обновление: выбираем область - ограничивается список районов, выбираем район - ограничивается список точек. Чтобы быстрее редактировать/вводить данные. А так в общем-то сами по себе они не очень нужны, разве что для запросов. В далеком будущем планируется для точек загнать координаты и попробовать обрабатывать все это с помощью ГИС, но до этого еще ОЧЕНЬ ДАЛЕКО. 5. Да, в принципе, дублирование ни к чему. Хотя оно и не сильно мешает, но могу и убрать. 6. Ты еще ВСЮ схему не видел :) Там %-| Литературные данные, информация о таксонах (а у них куча характеристик - ареалы, синонимы, кормовая база), программное выбрасывание итоговых данных в Excel и построение диаграмм, в общем, если будет желание могу написать подробнее, а если нет то не стоит забивать голову. Впрочем, проектирование БД - это отдельная песня и я вполне согласен с тем, что схема данных сырая и над ней еще работать и работать. Надо книжку какую-н. почитать... Дейт с "Основами..." подойдет? Вот уж не мог подумать, что Total Commander это такая проблема. А у нас везде стоит. А где не было и люди пользовались (трахались) с Проводником - моими стараниями появился. А там тебе и упаковка-распаковка и синхронизация и все что хочешь. А ты чем пользуешься? Может, я от жизни отстал? Mdb лучше rar'ом пакуются? Пожалуйста, могу все примеры в .rar выкладывать, тогда Total Commander не нужен. Я бы поспорил с тем, что у меня сравнительно простая задача... Весь вопрос в том, с чем сравнивать. Еще раз спасибо. Меня тут недельку не будет, а потом я топик снова подниму. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2006, 01:32 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Пардон, Дейт "Введение в системы баз данных". Что-н. порекомендуешь по проектированию БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2006, 22:36 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Я вернулся. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2006, 17:30 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Наверное, ничего не буду рекомендовать, потому что на эту тему много хорошей литературы. Если, читая Дейта, реально начинаешь лучше понимать, как строить БД, то читай. Я таким подходом руководствуюсь. Ты можешь создать файл в MS Visio и взять в него структуру твоей БД? А потом положить этот файл сюда. Только с пояснениями, что каждая таблица содержит... Ты базу сам с нуля создавал или переделываешь чужую? Форму, которую мы обсуждали, сам делал или она чужая? Насколько критично, чтоб форма была организована именно так, как у тебя: с кучей кнопок, в том числе с переделанной навигацией по записям? ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2006, 22:26 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Посмотри прикрепленную базу. Элементы формы cboProvince и cboDistrict я сделал несвязанными. Источник записей для cboDistrict ограничивается выбранным значением элемента cboProvince, а для cboPointLeg - выбранным значением элемента cboDistrict. Добавил события cboProvince_AfterUpdate и cboDistrict_AfterUpdate. Также добавил событие cboPointLeg_DblClick, которое, помимо двойного щелчка, вызывается еще и переходом по записям из события Form_Current. По-хорошему из названия точки, хранящегося в таблице, все же нужно убрать название области и района. А в источнике записей элемента cboPointLeg тогда можно сделать запрос, который соберет тебе нужную строку, взяв данные из трех таблиц: область, район и точку. Только тогда нужно чуть поразвернутей незвать области в таблице PROVINCE_TABL. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2006, 23:25 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Класс! Спасибо! А что это за зверь MS Visio и где он живет? Базу создавал сам, так что сорри... Уж на что ума хватило... И форму соответственно тоже сам делал... Ну, конечно, где какие прибамбасы красивые нашел тоже попробовал применить. Не то чтобы критична именно такая форма, но удобно, когда информация об экземпляре на одной форме, никуда не надо лазить, все перед глазами. Т.е. я старался реализовать несколько подходов. Во-первых, структура базы отражает реальные взаимоотношения между реальными объектами. Хорошо это или плохо пока не знаю. Во-вторых, близкая по смыслу (и соответственно обработке) информация помещается на одну форму. Вот почему эта frmInputData такая сложная. Мне не так критична скорость (однопользовательская БД на современном компе отрабатывает практически любой сложности формы и код с более-менее приличной скоростью), главный критерий - удобство и точность вводимой информации. Я так понял, что блокировка элементов управления, задаваемая через контекстное меню на этой форме, не катит? Как же тогда застраховаться от ошибочного введения данных (читай, нечаянных нажатий)? Попробую пока кое-что переделать (в структуре по персоналиям) и убрать дублирование информации из точек (тут ты совершенно прав). Просто раньше я хотел подстраховаться, а то бывают одинаковые названия населенных пунктов. Поди потом разбери из каких они районов. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.03.2006, 22:45 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
MS Visio содержится в английской версии пакета MS Office 2003. В принципе, легко можно поставить как отдельный продукт. Среди прочего Визио позволяет взять структуру из базы МДБ или с SQL-сервера. Удобно для анализа этой самой структуры. Возможно создание базы из структуры файла Визио, но это, если я правильно помню, требует установки Visual Studio. Визио, ессесно, не единственный подобный продукт. Насчет базы спросил потому, что схема данных (тот фрагмент, что есть в твоем примере) содержит дубли таблиц. А зачем, я не понял. Насчет формы поинтересовался потому, что, например, дублирование родных Аксессовских кнопок навигации по записям всегда казалось мне немножко лишней работой. Если произошло какое-либо изменение данных в форме, то ее свойство Dirty становится True (Me.Dirty=True). Его и можно использовать, чтоб проверять, вносились ли изменения. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2006, 00:25 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
У меня есть Office 97, 2000, 2002 и все русские версии, а также Visual Studio 6.0. А MS Visio только в английской 2003? Что еще можно использовать и где это качнуть? Схема содержит дубли таблиц, если имеются ввиду таблицы с номером 1 после названия, то это сам Access ставит таким образом таблицы подстановки. Если же под дублями подразумевается ненужное дублирование информации, то это моя недоработка. Про дублирование родных навигационных кнопок - это я у Гетца списал. У меня уже была такая форма в базе на работе, я ее просто импортнул и все. Про Dirty я знаю, но мне казалось что проще не допускать СЛУЧАЙНОГО внесения изменений, чем проверять, были ли они и какие именно - случайные или намеренные. Впрочем, если блокировку применить нельзя, то можно наложить на кнопки прозрачные рамки и обрабатывать клики по ним. Таким образом блокировки кнопки нет, но и просто так не нажмешь, имхо. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2006, 06:38 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Насчет инструментов пректирования бд можно, видимо, почитать в форуме по проектированию баз данных, который есть на этом сайте. ... Ну, в любом случае, тебе видней, что именно ты хочешь видеть в собственных формах ... Ок, желаю дальнейшей успешной разработки и обновляемых рекордсетов ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2006, 21:59 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
CookieMonster, пока ищу MS Visio, такой вопрос. Я немножко поправил форму frmInputData, все фамилии, которые были в трех таблицах свел в одну. Еще мне помогли с запросом на выборку ("Связка..." - в базе) из таблицы TAXONS_TABL, которая содержит иерархические данные. Теперь озадачился способом который бы позволил ограничивать содержимое поля со списком "Комбинация" в зависимости от значения поля со списком "Семейство" - ведь они как бы ненапрямую связаны. Но и с прямой связью не все получилось. Поскольку таблица с фамилиями одна, а значения оттуда дважды входят в таблицу trelLPTLEG, возникла трудность с выводом фамилий в поле со списком "хранится" - выводятся коды. Если сможешь, помоги. Прикладываю новый вариант урезанной базы со всем тем, о чем сказал выше. Извини, никак не получается втиснуть в один кусок. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2006, 22:49 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2006, 22:50 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
04.04.2006, 22:50 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
CookieMonster, что-то ты замолчал... Мне частично удалось сделать то что я хотел. А именно: по значению в комбобоксе "Комбинация" выводится текущее значение комбобокса "Семейство", а по апдейту значения "Семейство" ограничивается список для "Комбинация". Подробности можно посмотреть в приложенной урезанной базе (да что ж такое, сколько ни вырезаю, как ни сжимаю - все равно больше 70 Kb!). Из этой последней базы нужно импортнуть и соответственно заменить/добавить все объекты в предыдущем варианте от 4 апреля. Но вот коды в комбобоксе "хранится" заменить на фамилии пока не удалось. Возможно, надо еще подумать. Спасибо тебе за приведенные ранее технические решения, своими нынешними "достижениями" я обязан им! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2006, 18:32 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2006, 18:34 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
10.04.2006, 18:35 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Народ! Подскажите, кто знает! Еще раз кратко суть проблемы. В два подстановочных поля - idsAUTHOR_TABL_ID и idsAUTHOR_TABL_LEG_ID таблицы trelLPTLEG заносятся значения из таблицы AUTHORS_TABL. В таблице trelLPTLEG и запросе, в котором она участвует, выводятся фамилии, все нормально. В форме же на основе запроса в поле со списком "Собрал" (idsAUTHOR_TABL_LEG_ID) выводятся фамилии, а в поле со списком "хранится" (idsAUTHOR_TABL_ID) - коды. В чем дело? Подход к заполнению полей один и тот же. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.04.2006, 18:48 |
|
|
start [/forum/topic.php?fid=45&gotonew=1&tid=1659683]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
107ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 227ms |
0 / 0 |