|
|
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
....... присвоить некоторому ПОЛЮ результат который считается для каждой выбранной ЗАПИСИ. То есть я имею все необходимые варианты значения этого ПОЛЯ. Но по результатм присвоениея, значение ПОЛЯ оказывается одинаковым для всех записей и равным результату последней записи. Если в таком подходе это принципиально невозможно, то может у кого есть идеи, как добиться результата другими средствами. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2003, 10:42 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
У этого поля обязательно должен быть заполнен ControlSource. Это может быть либо формула со знаком равенства в начале Код: plaintext либо название поля из RecordSource'а формы Код: plaintext В втором случае в RecordSource'е формы должно быть поле, вычисляемое по аналогичной формуле: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2003, 11:21 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
Увы, не получается. Через ControlSource кузультат такой же как через прямое присвоение. То есть значение для всех ЗАПИСЕЙ одинаково и равно последневы вычисленному значению. А в случае RecordSource у меня recordset появляется в результате ЗАПРОСА, а вычисляемые поля в в состав RECORDSET не входят. Они принадлежат только ФОРМЕ. Я не могу их вставит в ЗАПРОС, так как алгоритм вычислений довольно громоздкий, а как вставить FUNCTION, которая его реализует в сам ЗАПРОС я ума не приложу. Да и скорее всего это и невозможно. Скорее всего прийдется создавать временную ТАБЛИЦУ, в которую выбрать необходимые ЗАПИСИ, добавить вычисления, и только затем ее передать в ФОРМУ. Но это неэстетично и громоздко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2003, 12:10 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
автор писал:Увы, не получается. Этого не может быть, потому что не может быть никак (или никогда - точную цитату из Чехова не помню). автор писал:Через ControlSource кузультат такой же как через прямое присвоение. То есть значение для всех ЗАПИСЕЙ одинаково и равно последневы вычисленному значению. Уважаемый пан что-то делает не так, как я написал. Я в этом уверен на все сто. автор писал:А в случае RecordSource у меня recordset появляется в результате ЗАПРОСА, а вычисляемые поля в в состав RECORDSET не входят. Они принадлежат только ФОРМЕ. Не входят - значит надо их туда добавить. автор писал:Я не могу их вставит в ЗАПРОС, так как алгоритм вычислений довольно громоздкий, а как вставить FUNCTION, которая его реализует в сам ЗАПРОС я ума не приложу. Да и скорее всего это и невозможно. Не надо гадать, я ведь показал, как это делается. Более того, есть два способа: либо вставить их в сам запрос, либо сделать RecordSource'ом формы селект, сидящий на том запросе, но с добавлением этих полей. автор писал:Скорее всего прийдется создавать временную ТАБЛИЦУ, в которую выбрать необходимые ЗАПИСИ, добавить вычисления, и только затем ее передать в ФОРМУ. Но это неэстетично и громоздко. Не нужно ради такой ерунды создавать временную таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2003, 12:22 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
Вариант ControlSource Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. Цикл проходит по всем выбранным записям, делает вычисления, а в ФОРМЕ в полях, Received и Payed высвечивается последнее вычисленное ....... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2003, 12:34 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
В случае с RecordSource. Я могу вставить вычисляемые поля в ЗАПРОС. Но в самом ЗАПРОСЕ вычислить их крайне затруднительно. Я их могу вычислить в Функции. Но присвоить значения не получается, так как RecordsetClone, а в этом случае запись только на чтение........ Разве что после каждого вычисления RecordsetClone закрыть, запомнив предварительно Bookmark, присвоить результат ПОЛЮ, и сделать следующую иттерацию вычислений....... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2003, 12:41 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
Этот цикл вообще не нужен. Эта программа вообще лишняя!!! автор писал:Я могу вставить вычисляемые поля в ЗАПРОС. Но в самом ЗАПРОСЕ вычислить их крайне затруднительно. В очередной раз повторяю: я в первом ответе показал, как это делается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2003, 12:56 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
Тогда может подскажете, как в ЗАПРОСЕ вызвать ФУНКЦИЮ. Если это вообще возможно....... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2003, 14:43 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
БЛИН!!! В МОЕМ ПЕРВОМ ОТВЕТЕ ЭТО ЕСТЬ!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2003, 14:56 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
АГА - а - а !!! Вот он опять всплыл мой вопросик опять вертикальный расчет по таблице с обновлением данных после расчета есть у меня действующий вариантик - сам сделал, работает отлично, но не понятно даже для меня самого все елементарно запрос в котором одно из полей функция при простом вызове запроса данные таблицы заносятся в n - мерный массив а далее расчет выполняется на основе данных етого массива, после чего присваивается функции, потом обновление и ВСЕ !!! причем такая штука работает приблизительно с одинаковой скоростью, что локально что по сети, при попытке использования Recordset комп на запросе вообще повисает и ждать результата выполнения нужно десятилетиями НИКТО МНЕ НЕ ВЕРИТ ГОВОРЯТ мол массивы вообще лишняя штуковина в Access если нужно вышлю действующий макет :?) сами увидите, может поймете и мне расскажете как он работает :?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2003, 02:04 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
For Владимир Саныч: Не надо злиться. Я не эксперт, и в этом нет ничего зазорного. Не получается у меня то, что Вы мне посоветовали. ЗАПРОС мою функцию не видит. И ругается. For SiriusB: Помогите с наглядным пособием по Вашему решению. Можно на Еmail odievich@mail.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2003, 10:58 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
На всякий случай: Функция должна быть описана в общих модулях (вкладка Modules), а не в форме. Иначе она не будет видна в запросах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2003, 11:46 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
На самом деле вызвать функцию из формы можно конечно, только вызов будет выглядеть не просто ИмяФункции(), а надо указывать и форму. И такой запрос не будет работать если форма закрыта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2003, 11:51 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
единственный случай, когда функцию "затруднительно вставить в запрос", это когда функция реализует некий квазиагрегат (зависящий от порядка вывода данных в запросе, а еще хуже - в форме), и при этом набор данных должен быть обновляемым. В этом случае функцию надо вставлять не в запрос, а в поле формы. Но для того, чтобы значение зависело от номера записи, функция должна иметь (пусть и фиктивно) аргументы из числа полей формы (т.е. она должна вызываться Access-ом для каждой записи). Можно посмотреть например реализацию "свободного" чекбокса в форме. Где то в сетке было. Сродственная (частично - по реализации _одной_ из методик, если я правильно припоминаю) задача раскраски записей в ленточной форме (см так же по форуму - где то обсуждалось) 97 акс-а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2003, 12:14 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
автор писал:Не надо злиться. Я не эксперт, и в этом нет ничего зазорного. Так объяснить надо, в чем проблема, а не один и тот же вопрос задавать 4 раза. Что мне остается, кроме как понять, что мой ответ не прочитан? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2003, 13:27 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
For Assa: Великолепно объяснили!!! Заработало просто немедлено!!! For Владимир Саныч: Sorry. Я старался объяснить как мог. Но в целом виноват сам. Я Перенес функцию в МОДУЛЬ. И сохранил ее как Privat. Поэтому ее не было видно :-(( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2003, 14:03 |
|
||
|
Подскажите как можно в ЛЕНТОЧНОЙ ФОРМЕ........
|
|||
|---|---|---|---|
|
#18+
Аssa - ВЕЛИКИЙ СТРАТЕГ !!! только что послал письмо автору данного топика, где описал точно тоже самое функция F(x,y) x - первичн ключ или поле с уник значением Y - категория расчета спасибо Mr. Odievich за топик а то мой незаслуженно похоронили :?) я думаю - ета тема получит активное развитие потому что расчет Exel-евского типа по горизонтали никуда не годиться из за плохой масштабируемости программ вертик расчет с использованием массива - ето технология для Access да и вообще для расчетов в БД единственное, что ее сдерживает - плохая скорость исполнения уже на 5000 записей, но скорость процессоров растет, так же растет и скорость SQL-технологий Я думаю нас ждет удача :?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2003, 15:08 |
|
||
|
|

start [/forum/topic.php?fid=45&fpage=1716&tid=1678062]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 329ms |

| 0 / 0 |
