|
|
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
Есть форма с табличной субформой. В примечаниях субформы свободное поле - txtSum (Данные = Sum([Сумма])). В главной - свободное поле txtSum2 (Данные = Forms!fmGlav!fmSubForm.Form.txtSum). Открывается - все красиво. Щелкаю "Отбор" (btnOtbor) - срабатывает процедура в модуле главной формы. Меняется RecordSource субформы (хранимая процедура) и, как водится, Requery субформы. Теперь, самое "смешное" в поле txtSum2 - #Ошибка. Но, если выполнять процедуру обработки события "btnOtbor_Click" по шагам - все прекрасно - в поле итоговое значение. Что бы это значило??? :((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 13:16 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
> Но, если выполнять процедуру обработки события "btnOtbor_Click" по шагам - все прекрасно Значит, просится DoEvents. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 13:23 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
А какая версия Access? У меня та же проблема, но появилась при переходе с 2000-го на 2002-й Сейчас ищу способы решения. 2 Владимир Саныч DoEvents - не помогает однако :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 13:26 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
2 Витал Меняется RecordSource субформы (хранимая процедура) и, как водится, Requery субформы. Кажись Requery - лишнее, т.к. изменение RecordSource уже само по себе обновление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 13:32 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
А2002! Кстати, пробовал и Requery полей, как всех, так и в любых комбинациях. Единственно, не пробовал Recalc формы. Когда-то в А2000 вроде этим и спасался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 13:37 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
Кажись Requery - лишнее Это для adp? Поскольку, если не ошибаюсь, в mdb это обязательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 13:40 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
В ADP придется заметнить этот способ на кажущиеся на первый взгляд более трудоемкий, но впоследствии более удобный. можно для вычисления результата использовать 1. листбокс 2. подчиненную форму в источник данных этого контрола собираешь SQL строку типа select sum(MYVAR) as mysum from MYTABLE where Условия отбора запроса источника данных формы and строка на основе фильтра посмотри у меня есть примерчик в котором отображается несколько сумм по категориям . http://kozin1.narod.ru/sql/forms/index.htm#p4 правда в этом примере задача отображения результатов при изменении фильтра не предусмотрена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 17:27 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
Спасибо АлексейК! Эти способы (субформы с итоговым селектом, комбо/листбоксы и рекордсеты) я уже использовал в разных местах. А здесь, подумал: "Нельзя ли проще!". Вдруг чешу левое ухо правой задней ногой? Да и просто интересно - почему по шагам работает, а иначе нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 17:58 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
2 АлексейК Можно даже без подформы, сделать поле с функцией, которая вернет результат запроса типа "select sum([field]) as f1 from (" & Subform.Recordsource & ") a" и сделать это можно через Command.Execute Дело в другом: Использование дополнительных запросов, для расчетных полей, не очень хороший метод, особенно для больших систем (много пользователей * много данных), т.к. идет лишняя нагрузка на сеть и на сервер. Ведь если запрос уже выполнен и записи на клиенте, то подсчитать сумму по какому-то полю - это работа клиентской части. Тут явная ошибка Access...вопрос в том как она решается без способов "чешу левое ухо правой задней ногой" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 18:13 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
Сейчас буду ставить экспирименты вопросы по твоему случаю 1. есть ли в числе полей - хранимки которая является источником данных для подформы ключевое поле таблицы ? были замечены глюки при пересинхронизации без ключевого поля. 2. ВНИМАНИЕ! подчиненная форма связана с главной через класический вариант с главными/подчиненными полями или при помощи параметров процедуры и полей главной формы ? напиши мне а я попробую смоделировать у себя или пошли мне код и скрипт таблиц / процедур ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 18:28 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
Раз уж есть желающий протестировать - грех такой возможностью не воспользоваться :) Уж извините, что вмешиваюсь, просто именно в данный момент занят решением этой проблемы (точнее поиском приемлемого варианта). У меня немного другая история, но очень близко к проблеме, которую описывал Витал, и решение думаю будет одинаковое. Как я воспроизвел макисмально просто проблемную ситуацию. Таблица из двух полей (ключ+денежное поле) Форма1 - создается мастером в виде ленточной. В примечании формы делаем поле =SUM([наше денежное поле]) Все работает прекрасно: сумма считается правильно, даже при сортировке по ключевому полю вверх, вниз. Теперь делаем простую форму (форма2) без источника и в нее добавляем созданную подчиненную Форма1. Теперь при открытии сумма считается, но стоит только применить сортировку, как в итоговом поле идет ошибка. Пока что найдено только одно решение - дополнительный запрос на подсчет суммы (как это реализовано значения не имеет, кнопка, поле, подформа - это уже кому как нравится). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 18:54 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
Этот глюк у меня решился двумя способами. 1) добавление фиктивного источника 2) применение Me.RecordSource = Me.RecordSource вместо Me.Requery Кстати в отличии от MDB в ADP агрегирующие поля в примечании формы типа = Sum([Сумма]) (причем [Сумма] не имя контрола , а имя поля источника) считаются на сервере и не реагируют на пользовательские фильтры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 20:42 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
похоже у Вас проблемы с "однозначной таблицей" и "командой синхронизации" у меня все работает прекрасно. аналогичные проблемы были пока вышесказанное не сделал правильно. щас работакт так же как и в mdb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.06.2003, 21:03 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
2 Latuk Можно подробнее о "фиктивном источнике" Кстати в отличии от MDB в ADP агрегирующие поля в примечании формы типа = Sum([Сумма]) (причем [Сумма] не имя контрола , а имя поля источника) считаются на сервере и не реагируют на пользовательские фильтры Откуда такая информация? Profiler ничего подобного не показывает. 2 вадя У Витала возможно проблема именно со строкой синхронизации и уникальной таблицей (хотя я не уверен). Что касается моего случая, то выяснил следующее: при использовании именованных запросов (таблица, вью, ХП) ошибка не возникает, если же использовать запрос в виде строки, то идет ошибка. И не имеет значения, установлена уникальная таблица и строка синхронизации или нет. Самое обидное, что ничего подобного не было в 2000-м. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 10:48 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
проблемы с "однозначной таблицей" тут непричем. Если форма основана на ХП то заполнить его просто не удастся. Проблемма как раз в том , что если форма не имеет источника (источник заполняется програмно после загрузки формы) , то агрегирующие поля в примечании могут глючить.А также перестает работать Me.Requery после применения сортировки. Если считать сумму отдельным запросом , то нагрузка на сервер не увеличивается так как агрегирующие поля в примечании в ADP тоже считаются на сервере , только отдельно для каждого поля и если посчитать своим запросом то нагрузка даже уменьшится. Единственный минус в подсчете своим запросом - время потраченное на его написание :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 10:49 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
2Latuk проблемы с "однозначной таблицей" тут непричем. Если форма основана на ХП то заполнить его просто не удастся. ну это совершенно не правильно - ЧИТАЙТЕ ГЕТЦА програмно заполняй "однозначную таблицу" и "команду синхронизации" ПРАВИЛЬНО и будет работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 11:03 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
>Можно подробнее о "фиктивном источнике" ХП которая ничего не вохвращает , но содержит все необходимые форме поля типа Select NULL AS Поле1, NULL AS Поле2 ... >Откуда такая информация? Profiler ничего подобного не показывает. Информация из опыта эксплуатации слабых клиентских машин (Р1 133 32Mb) Если действия выполнялись на стороне клиента (сортировка фильтр и т.п.) , то были очень медленными, если на сервере то мгновенно (по контрасту) Если на MDB привязанному к томуже источнику сумма считалась 5-7 секунд , то в ADP 0,5-1 сек. Причем если получать сумму в ADP клиентом оперируя с клиентским recordset-ом то получалось теже 5-7 сек. >Самое обидное, что ничего подобного не было в 2000-м. Там было много чего другого. Но ничего не мешает ваять в формате 2000 и использовать 2000 у юзеров (с некоторыми гемороями типа несовместимости с MSSQL2000 и указыванием dbo. перед источниками). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 11:13 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
2 вадя програмно заполняй "однозначную таблицу" и "команду синхронизации" ПРАВИЛЬНО и будет работать Будет работать но не всегда. И команда синхронизации и уникальная таблица, не влияют на агрегирующие поля (это не факт а опытное замечение: при условии что в источнике запрос на основе одной таблицы зависимости обнаружить не удалось). Цитата из Гетца: "Access не всегда может определить без вашей помощи как ей обновлять данные в тех случаях когда форма базируется не на одной таблице, а на объединении записей из нескольких таблиц...Устанавливать эти свойства нужно не всегда, а в зависимости от источника формы." 2 Latuk Спасибо за пояснение о фиктивном источнике, сам что-то подобное использовал. Если информация из опыта, то это не факт, при всем уважении. Тут необходимы доказательства :)) На 2000-м остаться не могу, т.к. имеется Office XP Developer и для клиентов будет устанавливаться Access XP Runtime. Хотя если в общем, то в XP мне нравится больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 11:23 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
>програмно заполняй "однозначную таблицу" и "команду синхронизации" Програмно заполнить действительно получилось. Правда не понятно зачем это если набор статический. Глюк остался- после сортировки Me.Requery не работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 11:25 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
>Хотя если в общем, то в XP мне нравится больше. Писать на ХР безусловно удобней , но отказатся от формата 2000 не всегда получается.Например у нас в центральном офисе более 100 машин , убедить сисадмина переустановить офис на всех было очень сложно , и даже когда убедил (через директора) прошло 4 месяца прежде чем исчехз последний юзер с MSO2000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 11:32 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
Например у нас в центральном офисе более 100 машин , убедить сисадмина переустановить офис на всех было очень сложно , и даже когда убедил (через директора) прошло 4 месяца прежде чем исчехз последний юзер с MSO2000. Вот поэтому и прошлось приобретать Office Developer. Runtime вещь классная, причем прекрасно дружит MSO2000 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 11:49 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
2incold Сколько будет весить установщик RunTime версии для Акеса2002 (mdb), если в проекте используются библиотеки DAO,ADO, mscomctl.ocx, микрософт object liblary - mco.dll, excel object liblary - excel.olb, ole atomation. хотя бы приблизительно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 11:56 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
Сколько будет весить установщик RunTime версии для Акеса2002 (mdb), если в проекте используются библиотеки DAO,ADO, mscomctl.ocx, микрософт object liblary - mco.dll, excel object liblary - excel.olb, ole atomation. хотя бы приблизительно Приблизительно: Чистый Access Runtime 35 Mb OSP - обновление системных файлов (Windows Installer, IE5 и прочая ерунда) 87 Mb Если нужно создавать свой пакет с включением дополнительных библиотек, то используется Pakage Wizard и конечный пакет инсталляции может получится немного больше. У меня получилось: MSDE+Access Runtime+все рабочие файлы = 250-300 MB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 12:11 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
>Чистый Access Runtime 35 Mb тогда в моем случае будет ~50 МБ - многовато для интернета. Для CD - нормально. Может мне коробочную версию программ начать делать? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 12:17 |
|
||
|
Глюк или не Глюк? Вот в чем вопрос... ADP. Сумма в свободном поле = #Ошибка
|
|||
|---|---|---|---|
|
#18+
2 Senin Viktor Зависит от (...впишите свой перечень...) Но могу сказать что коробка она завсегда коробка - даже юзер, знакомый с процессом установки новых игрушек. Сможет установить программу упакованную в коробочную версию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2003, 12:33 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32184640&tid=1681034]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
82ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 403ms |

| 0 / 0 |
