Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как создать табличную подчиненную форму до того ка 
:(
    Опции темы
alexIrish
Дата 23.7.2007, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.1.2006
Где: Ireland, Dublin

Репутация: нет
Всего: нет



Всем доброго времени суток.

Mожeт я сейчас и ступлю, но как создать табличную подчиненную форму до того как запрос-источник еще нe сформирован. По совету boroha, sоздал форму SAБ которую назначил как источник данных для sfDetails (сабформа на форме) .  См. :
Podrobnosti

Nо запрос то формируется потом, соответственно поля на САБ могут и не совпадать. Получаем ошибочку типа #Name в полях не совпадающих с запросом Или вообще отсутствие полей если они есть в запросе но нет в форме САБ. Такой проблемы нет когда источником является запрос. Пиши что хочешь. 

Выход?

Это сообщение отредактировал(а) alexIrish - 23.7.2007, 13:14
PM MAIL   Вверх
Akina
Дата 25.7.2007, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Если я правильно понял проблему, то она такова:

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

Если это так, то решение - создание промежуточного переименующего запроса либо, если этот запрос-источник создается динамически, переименование полей результирующего набора.

Пример переименующего запроса:

Код

Select Filed1 As ControlName1, ... , FiledX As ControlNameX
From Query
Order By FieldM, ... FieldN

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

Или попробуйте переформулировать вопрос - а то уж больно туманно...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
alexIrish
Дата 25.7.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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 бардак)
PM MAIL   Вверх
Akina
Дата 25.7.2007, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 30
Всего: 454



Цитата(alexIrish @  25.7.2007,  11:49 Найти цитируемый пост)
Получается что нузно все время следить зa совпадением полей формы и запроса и удалять/добавлять поля програмно?

Конечно! если что-то меняется, то кто-то должен это отслеживать. А коли в рантайме - то программно.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bopoha
Дата 27.7.2007, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1283
Регистрация: 10.5.2006
Где: Беларусь, Минск

Репутация: 21
Всего: 21



Конечно ли изменение полей?
Если да и число этих изменений ограничено очень маленьким числом, то: Очень полезно сделать форму для каждого вида запроса. И динамически менять саму подчиненную форму (свойство уже знаешь).

Второй вариант, это скрывать не нужные поля динамически. В табличной форме это можно.

Код

    Me.<поле>.ColumnHidden = True


Мне больше нравиться первый вариант. Т.к. обычно разные данные требуют разного представления.

ЗЫ: boroha - это я?  smile 

Это сообщение отредактировал(а) bopoha - 27.7.2007, 21:09
PM MAIL WWW ICQ Skype GTalk   Вверх
alexIrish
Дата 28.7.2007, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 217
Регистрация: 26.1.2006
Где: Ireland, Dublin

Репутация: нет
Всего: нет



Хороших всем выходных. 
Поексперементировав по всякому, решил оставить как у меня было вначале по двум причинам:
-во-первых если делать через табличные субформы, то очень много переделывать уже надо;
-во-vторых, как оказалось, не все усеры знают как использовать фильтры v Access, да и вообще.  И т.д.
Закрыл все полядля едита, и добавил контролы фильтра по введенному значению и експорт в Excel.
Пусть там что хотят то и делают smile  
А то им видитe ли нe нравятся отчеты, клеточек нет как в Екселе. Дурдом какой-то и ето менеджеры. smile 
Вообще подумываю о переносе клиента на Ехcel.

Bopoha: My appologies for nick error.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "MS Access"
Akina
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] и [code=sql][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MS Access | Следующая тема »


 




[ Время генерации скрипта: 0.0934 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.