![]() |
|
Модераторы: Akina |
![]()
|
|
| alexIrish |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 26.1.2006 Где: Ireland, Dublin Репутация: нет Всего: нет |
Всем доброго времени суток.
Mожeт я сейчас и ступлю, но как создать табличную подчиненную форму до того как запрос-источник еще нe сформирован. По совету boroha, sоздал форму SAБ которую назначил как источник данных для sfDetails (сабформа на форме) . См. : Podrobnosti Nо запрос то формируется потом, соответственно поля на САБ могут и не совпадать. Получаем ошибочку типа #Name в полях не совпадающих с запросом Или вообще отсутствие полей если они есть в запросе но нет в форме САБ. Такой проблемы нет когда источником является запрос. Пиши что хочешь. Выход? Это сообщение отредактировал(а) alexIrish - 23.7.2007, 13:14 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Если я правильно понял проблему, то она такова:
Есть некая (суб)форма. Ей динамически во время исполнения назначается источник данных. Проблема заключается в том, что могут не совпадать имена полей в источнике данных формы и запросен, который назначается источником. Если это так, то решение - создание промежуточного переименующего запроса либо, если этот запрос-источник создается динамически, переименование полей результирующего набора. Пример переименующего запроса:
То есть простое добавление As сразу решает проблему в случае динамического запроса (мы получаем уже нужные имена полей). А в случае статического запроса (который мы не можем менять) мы прокладываем "паразитный" динамический запрос, выполняющий только функцию переименования (Важно! Сортировка в нем обязана быть - потому как при отсутствии сортировки порядок записей, полученный в источнике данных "паразитного запроса", не только не гарантируется, но и скорее всего не сохранится). Или попробуйте переформулировать вопрос - а то уж больно туманно... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| alexIrish |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 26.1.2006 Где: Ireland, Dublin Репутация: нет Всего: нет |
Прошу извинить з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 бардак) |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 30 Всего: 454 |
Конечно! если что-то меняется, то кто-то должен это отслеживать. А коли в рантайме - то программно. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| bopoha |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1283 Регистрация: 10.5.2006 Где: Беларусь, Минск Репутация: 21 Всего: 21 |
Конечно ли изменение полей?
Если да и число этих изменений ограничено очень маленьким числом, то: Очень полезно сделать форму для каждого вида запроса. И динамически менять саму подчиненную форму (свойство уже знаешь). Второй вариант, это скрывать не нужные поля динамически. В табличной форме это можно.
Мне больше нравиться первый вариант. Т.к. обычно разные данные требуют разного представления. ЗЫ: boroha - это я? Это сообщение отредактировал(а) bopoha - 27.7.2007, 21:09 |
|||
|
||||
| alexIrish |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 217 Регистрация: 26.1.2006 Где: Ireland, Dublin Репутация: нет Всего: нет |
Хороших всем выходных.
Поексперементировав по всякому, решил оставить как у меня было вначале по двум причинам: -во-первых если делать через табличные субформы, то очень много переделывать уже надо; -во-vторых, как оказалось, не все усеры знают как использовать фильтры v Access, да и вообще. И т.д. Закрыл все полядля едита, и добавил контролы фильтра по введенному значению и експорт в Excel. Пусть там что хотят то и делают А то им видитe ли нe нравятся отчеты, клеточек нет как в Екселе. Дурдом какой-то и ето менеджеры. Вообще подумываю о переносе клиента на Ехcel. Bopoha: My appologies for nick error. |
|||
|
||||
![]()
|
| Правила форума "MS Access" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | MS Access | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |