|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Тут пока то да се, вроде как получилось у меня сделать вывод значений полей подстановки. Но на некоторые поля ругается "введенное значение не подходит", в других выводится "#Имя?". А самое главное - хотелось бы сделать форму frmInputData так, чтобы можно было обновлять значения, т.е. как я понимаю, на основе Recordset... dbDynaset, но вот это-то как раз мне пока не удается. Ну еще в поле "Семейство" сделать вывод семейств, к которым относятся таксоны. Там в принципе по структуре таблицы TAXONS_TABL легко догадаться как они соотносятся (задел на будущее под TreeView). ... |
|||
:
Нравится:
Не нравится:
|
|||
20.02.2006, 23:37 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
и чем собирать в один файл? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2006, 23:00 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Поместить все куски в одну папку. В Total Commander выбрать часть с номером 001, выделить, меню Файл > Восстановить из частей. Затем распаковать в том же ТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2006, 01:49 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Попробовал сделать из таблицы TAXONS_TABL вывод названий семейств для видов. SELECT TAXONS_TABL_1.chrTAXON_TABL AS Семейство, TAXONS_TABL.chrTAXON_TABL FROM TAXONS_TABL INNER JOIN TAXONS_TABL AS TAXONS_TABL_1 ON TAXONS_TABL.lngPARENT_ID = TAXONS_TABL_1.idsTAXON_TABL_ID WHERE (((TAXONS_TABL_1.lngRANK)=10) AND ((TAXONS_TABL.lngRANK)=1)); Возвращается 874 записи Проблема в том, что многие виды с семействами связаны не напрямую, а через промежуточные таксоны, например, подсемейства. Если сделать вывод еще и подсемейств: SELECT TAXONS_TABL_2.chrTAXON_TABL AS Семейство, TAXONS_TABL_1.chrTAXON_TABL AS Подсемейство, TAXONS_TABL.chrTAXON_TABL AS Виды FROM (TAXONS_TABL LEFT JOIN TAXONS_TABL AS TAXONS_TABL_1 ON TAXONS_TABL.lngPARENT_ID = TAXONS_TABL_1.idsTAXON_TABL_ID) LEFT JOIN TAXONS_TABL AS TAXONS_TABL_2 ON TAXONS_TABL_1.lngPARENT_ID = TAXONS_TABL_2.idsTAXON_TABL_ID WHERE (((TAXONS_TABL_2.lngRANK)=10) AND ((TAXONS_TABL_1.lngRANK)=9) AND ((TAXONS_TABL.lngRANK)=1)); то возвращается 762 записи. А видов на самом деле 1652. Никак не догоняю, как бы переделать запрос выводящий виды и семейства не обращая внимания на существование промежуточных таксонов? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2006, 18:54 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Ну что-то прям никто не отвечает... Все так напраздновались, что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2006, 22:29 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Народ! Неужели ни у кого никаких мыслей нет как решить эту проблему? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2006, 13:35 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Приведите пример (представительный) исходных данных, и то, что нужно получить. А то с Вашими недорезанными лепидоптерами непонятно что делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2006, 14:26 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Что-то я не понял... Скриншоты и запрос выложил - не понравилось... Урезанную базу выложил - опять не то! А что ж нужно? Какой еще представительный пример? Исходные данные - таблицы. На их основе - запрос. Как сделать источником формы для просмотра и ввода данных обновляемый Recordset в основе которого инструкция SQL запроса? Куда же девался CookieMonster? Спрашивал-спрашивал, и вот теперь не отвечает... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2006, 16:03 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Базу Вы приложили по-нечеловечески. Вместо одного нормального архива zip/rar целых три файла. Скриншота я не в упор не вижу. Представительный пример? Напимер, исходные данные: FirstName Иванов Петров Иванов Сидоров Пупкин Пупкин Что хочу получить: FirstName Иванов Петров Сидоров Пупкин ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2006, 16:13 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Скриншоты (Форма_16 и Схема БД_16) в моих постах от 17 февраля. По-моему, ничто не мешает скачать 4 куска и слепить их вместе, получится даже не скриншоты, а нормальная база. Я не виноват, что файл больше 70 Kb нельзя приложить. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2006, 17:10 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
КДСкриншоты (Форма_16 и Схема БД_16) в моих постах от 17 февраля. По-моему, ничто не мешает скачать 4 куска и слепить их вместе, получится даже не скриншоты, а нормальная база. Я не виноват, что файл больше 70 Kb нельзя приложить. У Вас в запросе участвует одна таблица (если я правильно его прочитал - в следующий раз используйте короткие псевдоними из 1-2 букв для читабельности). Скопируйте ее в новую базу, сожмите ее и приложите. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2006, 17:44 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Запрос, выводящий нужные поля из нужных таблиц в посте от 16 февраля (в базе он называется "Запрос для формы InputData"). Но результат его выполнения - необновляемый Recordset. Нужен обновляемый, чтобы в форму можно было вносить данные. Запрос приведенный в посте от 22 февраля в применении к урезанному варианту базы таких результатов не даст (база-то урезанная), но это не суть важно. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2006, 19:26 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
А что скажут наши уважаемые гуру? Я чего-то невозможного хочу? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2006, 18:20 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
КДА что скажут наши уважаемые гуру? Я чего-то невозможного хочу? Добрый совет: в вашем запросе от 16 числа дайте псевдонимы таблицам из 1-2 букв - это сделать элементарно через контекстное меню "свойства" если щелкнуть правой кнопкой мышки на таблице в конструкторе запросов. Будет читабельнее. Мало кому охота вглядываться в эту мешанину. author SELECT trelLPTLEG.lngNUMBER, PROVINCE_TABL.chrPROVINCE_TABL_DESCRIPTION, DISTRICT_TABL.chrDISTRICT_TABL_DESCRIPTION, POINT_LEG_TABL.chrPOINT_LEG_TABL_DESCRIPTION, trelLPTLEG.idsFEATURES_CAPTURE_TABL_ID, trelLPTLEG.idsECOLOGY_TABL_ID, trelLPTLEG.idsLEG_TABL_ID, trelLPTLEG.dtmDATELEG, trelLPTLEG.blnEX_LARVA, trelLPTLEG.dtmDATE_PUPATION, trelLPTLEG.blnEX_PUPA, trelLPTLEG.dtmDATE_IMAGO, trelLPTLEG.blnREMOVE, trelLPTLEG.idsWHERE_REMOVE_TABL_ID, trelLPTLEG.memREMARK_LEG, trelLPTDET.memREMARK_DET, trelLPTDET.idsDET_TABL_ID, TAXONS_TABL.chrTAXON_TABL FROM TAXONS_TABL RIGHT JOIN (PROVINCE_TABL INNER JOIN (DISTRICT_TABL INNER JOIN (POINT_LEG_TABL INNER JOIN (trelLPTLEG LEFT JOIN trelLPTDET ON trelLPTLEG.lngNUMBER = trelLPTDET.lngNUMBER) ON POINT_LEG_TABL.idsPOINT_LEG_TABL_ID = trelLPTLEG.idsPOINT_LEG_TABL_ID) ON (DISTRICT_TABL.idsDISTRICT_TABL_ID = POINT_LEG_TABL.idsDISTRICT_TABL_ID) AND (DISTRICT_TABL.idsDISTRICT_TABL_ID = POINT_LEG_TABL.idsDISTRICT_TABL_ID)) ON (PROVINCE_TABL.idsPROVINCE_TABL_ID = DISTRICT_TABL.idsPROVINCE_TABL_ID) AND (PROVINCE_TABL.idsPROVINCE_TABL_ID = DISTRICT_TABL.idsPROVINCE_TABL_ID)) ON TAXONS_TABL.idsTAXON_TABL_ID = trelLPTDET.lngCOMBINATION_SPECIES_ID ORDER BY trelLPTLEG.lngNUMBER; ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2006, 18:52 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Боже мой, я уже устал повторять, что дело не в конкретном запросе, а в том, как сделать ОБНОВЛЯЕМЫЙ рекордсет в результате выполнения инструкции SQL, соединяющей несколько таблиц! ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2006, 19:51 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
КДБоже мой, я уже устал повторять, что дело не в конкретном запросе, а в том, как сделать ОБНОВЛЯЕМЫЙ рекордсет в результате выполнения инструкции SQL, соединяющей несколько таблиц! Хм... Капризный Вы какой-то.... Вообще-то Вам помочь здесь собирались. Обновляемые рекордсеты делаются на основе КОНКРЕТНЫХ запросов (селектов). Иногда удается переделать (с помощью подзапросов, например), иногда приходится использовать другой подход. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2006, 09:54 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Собирались помочь - помогайте! А то уже неделю идет обсуждение как правильно писать запросы и ни одной дельной мысли по моему вопросу. Ладно, пожалуйста, вот тот же самый запрос с псевдонимами: SELECT А.lngNUMBER, PR.chrPROVINCE_TABL_DESCRIPTION, D.chrDISTRICT_TABL_DESCRIPTION, PO.chrPOINT_LEG_TABL_DESCRIPTION, А.idsFEATURES_CAPTURE_TABL_ID, А.idsLEG_TABL_ID, А.dtmDATELEG, А.blnEX_LARVA, А.dtmDATE_PUPATION, А.blnEX_PUPA, А.dtmDATE_IMAGO, А.blnREMOVE, А.idsWHERE_REMOVE_TABL_ID, B.idsTAXON_TABL_ID, B.idsDET_TABL_ID, А.memREMARK_LEG, B.memREMARK_DET FROM TAXONS_TABL AS T RIGHT JOIN ((PROVINCE_TABL AS PR INNER JOIN (DISTRICT_TABL AS D INNER JOIN POINT_LEG_TABL AS PO ON (D.idsDISTRICT_TABL_ID = PO.idsDISTRICT_TABL_ID) AND (D.idsDISTRICT_TABL_ID = PO.idsDISTRICT_TABL_ID)) ON (PR.idsPROVINCE_TABL_ID = D.idsPROVINCE_TABL_ID) AND (PR.idsPROVINCE_TABL_ID = D.idsPROVINCE_TABL_ID)) INNER JOIN (trelLPTLEG AS А LEFT JOIN trelLPTDET AS B ON А.lngNUMBER = B.lngNUMBER) ON PO.idsPOINT_LEG_TABL_ID = А.idsPOINT_LEG_TABL_ID) ON T.idsTAXON_TABL_ID = B.idsTAXON_TABL_ID WHERE (((PR.chrPROVINCE_TABL_DESCRIPTION)="В" Or (PR.chrPROVINCE_TABL_DESCRIPTION)="А")) ORDER BY А.lngNUMBER По-моему, ненамного проще, но если это поможет, буду рад. Где же все-таки наши спецы? или они теперь только на лестницу заглядывают? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2006, 10:06 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
from help Изменение данных в запросе В некоторых случаях для изменения данных в базовой таблице их можно отредактировать в запросе в режиме таблицы. В других случаях этого сделать нельзя. В следующей таблице указано, можно ли изменить результаты запроса и есть ли какие-либо альтернативы. Запрос или поле запроса Изменение Решение Запрос, основанный на таблице Да Запрос, основанный на таблицах с отношением «один-к-одному» Да Запрос, основанный на таблицах с отношением «один-ко-многим» Обычно возможно Для получения дополнительных сведений нажмите кнопку . Запрос, основанный на трех и более таблицах с отношением «многие-к-одному-ко-многим». Нет Хотя обновлять данные непосредственно в запросе нельзя, их можно обновлять в форме или на странице доступа к данным, основанной на запросе, если свойство формы Тип набора записей (RecordsetType) имеет значение Динамический набор (несогл.). Т.е. Вам нужно попробовать в форме поставить "Динамический набор (несогл.). ". Либо изменить запросы с Left/Right Join на WHERE (NOT) EXISTS - в этом случае нельзя будет вывести поля из подзапроса в основной селект. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2006, 10:31 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Ну вот, уже дельное предложение! Спасибо! Попробовал... Кое-что получилось. Пока вот только закавыка - выводит для некоторых полей, получающих фокус (эти поля получают значения от запросов к присоединенным таблицам), сообщение: "Введенное значение не подходит для данного поля. Например, в числовое поле введены текст или число, превышающее предел, заданный в свойстве "Размер поля" (FieldSize)". Прикладываю базу где оставлена только новая форма InputData. Если кто захочет попробовать, необходимо импортнуть ее вместо существующей в базу которую я выложил ранее. (Черт, даже база с одной формой! - и то больше 70 Kb) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2006, 18:18 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2006, 18:19 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Все-таки не дошло до меня как приложить сразу 2 файла, извиняюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2006, 18:20 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
КДНу вот, уже дельное предложение! Спасибо! Попробовал... Кое-что получилось. Пока вот только закавыка - выводит для некоторых полей, получающих фокус (эти поля получают значения от запросов к присоединенным таблицам), сообщение: "Введенное значение не подходит для данного поля. Например, в числовое поле введены текст или число, превышающее предел, заданный в свойстве "Размер поля" (FieldSize)". Прикладываю базу где оставлена только новая форма InputData. Если кто захочет попробовать, необходимо импортнуть ее вместо существующей в базу которую я выложил ранее. (Черт, даже база с одной формой! - и то больше 70 Kb) ЕПРСТ.... Сколько же там записей в таблице? Базу сжимали? При всем желании Вам помочь неохота собирать один файл из трех кусков непонятного архива. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.03.2006, 20:09 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Да что ж непонятного в архиве? В Total Commander ломы собрать файл из кусков и разархивировать? Все автоматически. Выложил не базу, а только форму, где кое-что подправил. Записей в базе, которую выложил ранее, оставил минимум, чтобы обеспечить работоспособность. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.03.2006, 00:46 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
Короче, я так понимаю, никто не знает? CookieMonster слинял, спецы не подключились... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2006, 18:09 |
|
Форма для ввода данных на основе запроса объединения 2 таблиц
|
|||
---|---|---|---|
#18+
КДКороче, я так понимаю, никто не знает? CookieMonster слинял, спецы не подключились... Ты не хочешь напрячься, чтобы выложить свой файл в нормальном виде... Но хочешь, чтобы люди напрягались, думая за тебя? Как-то несправедливо, не находишь? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.03.2006, 18:29 |
|
|
start [/forum/topic.php?fid=45&msg=33567765&tid=1659683]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 171ms |
0 / 0 |