| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MS Access > как создать табличную подчиненную форму до того ка |
| Автор: alexIrish 23.7.2007, 13:10 |
| Всем доброго времени суток. Mожeт я сейчас и ступлю, но как создать табличную подчиненную форму до того как запрос-источник еще нe сформирован. По совету boroha, sоздал форму SAБ которую назначил как источник данных для sfDetails (сабформа на форме) . См. : http://forum.vingrad.ru/topic-161011/view-findpost/p-1203937.html Nо запрос то формируется потом, соответственно поля на САБ могут и не совпадать. Получаем ошибочку типа #Name в полях не совпадающих с запросом Или вообще отсутствие полей если они есть в запросе но нет в форме САБ. Такой проблемы нет когда источником является запрос. Пиши что хочешь. Выход? |
| Автор: Akina 25.7.2007, 09:58 | ||
| Если я правильно понял проблему, то она такова: Есть некая (суб)форма. Ей динамически во время исполнения назначается источник данных. Проблема заключается в том, что могут не совпадать имена полей в источнике данных формы и запросен, который назначается источником. Если это так, то решение - создание промежуточного переименующего запроса либо, если этот запрос-источник создается динамически, переименование полей результирующего набора. Пример переименующего запроса:
То есть простое добавление As сразу решает проблему в случае динамического запроса (мы получаем уже нужные имена полей). А в случае статического запроса (который мы не можем менять) мы прокладываем "паразитный" динамический запрос, выполняющий только функцию переименования (Важно! Сортировка в нем обязана быть - потому как при отсутствии сортировки порядок записей, полученный в источнике данных "паразитного запроса", не только не гарантируется, но и скорее всего не сохранится). Или попробуйте переформулировать вопрос - а то уж больно туманно... |
| Автор: alexIrish 25.7.2007, 10:49 |
| Прошу извинить зa туманность вопроса. Суть проблемы такова: Источником данных субформы обозначен запрос, SQL коd которого меняется програмное через querydef v зависимости от выбранных пользователем условий. Все работает, все прекрасно. Проблема что если изменить размер поля или применить фильтр (не програмно) в субформе ( считай в запросе) то по закрытию главной формы выпадает сообщение о сохранении изменений в запросе - источникe данных субформы. И если выбрать сохранить, то стирается SQL koд запроса. при следуwем открытии получаем: "запроs должен иметь хотя бы одно поле". По совету boroha создал табличную форму САБ, которую назначил источником данных для контролa субформа о котором идет речь выше. И уже в ней менял рекордсурс.Проблема в том что когда я ее создавал, я использовал запрос с определенным набором полей. Но в последствии кол-во полей меняется. И получается фигня типа #Name или вообще данные нe отражаются если нет поля совпадающего с запросом. Получается что нузно все время следить зa совпадением полей формы и запроса и удалять/добавлять поля програмно? Ведь если создать просто пустую форму в табличном видe, она вообще ничего показывать ничего нe будет дажe если потом ей назначить запроs в качестве рекордсурса. записи то есть но на форме нифига нe видно (контролов текстбох то нет) Вот такая фигня ребята. Хотя вполнe возможно что я нe там копаю. Устал чутка (жена на 8 месяце и нa работe бардак) |
| Автор: bopoha 27.7.2007, 20:58 | ||
| Конечно ли изменение полей? Если да и число этих изменений ограничено очень маленьким числом, то: Очень полезно сделать форму для каждого вида запроса. И динамически менять саму подчиненную форму (свойство уже знаешь). Второй вариант, это скрывать не нужные поля динамически. В табличной форме это можно.
Мне больше нравиться первый вариант. Т.к. обычно разные данные требуют разного представления. ЗЫ: boroha - это я? |
| Автор: alexIrish 28.7.2007, 14:29 |
| Хороших всем выходных. Поексперементировав по всякому, решил оставить как у меня было вначале по двум причинам: -во-первых если делать через табличные субформы, то очень много переделывать уже надо; -во-vторых, как оказалось, не все усеры знают как использовать фильтры v Access, да и вообще. И т.д. Закрыл все полядля едита, и добавил контролы фильтра по введенному значению и експорт в Excel. Пусть там что хотят то и делают А то им видитe ли нe нравятся отчеты, клеточек нет как в Екселе. Дурдом какой-то и ето менеджеры. Вообще подумываю о переносе клиента на Ехcel. Bopoha: My appologies for nick error. |