
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
22.04.2004, 16:45
|
|||
|---|---|---|---|
|
|||
Возвращение в первую строку |
|||
|
#18+
Как не кручу - подсчет производится только по первой строке запроса. Исходные данные для выполнения модуля - запрос (выборка). Dim FF(11, 100) As String Dim k As Double Dim PP(11, 100) As String Dim u As Double k = 0 u = 0 For j = 0 To 100 For i = 0 To 11 FF(j, i) = DLookup("Mon" & [M] + i, "[Табл1]", "[ComboDeptCode] = 3340.1000") k = k + FF(j, i) Next i PP(j, i) = k k = 0 u = u + PP(j, i) Next j Mont = u ...... и т.д. Дело в том, что накопление и идет только по одной строке. Пробовал даже "отсылать" на следующую строку, При открытом запросе вижу- на след строку переводит, но вычисляет только по первой. Как упразднить такое деяние - подскажите. благодарю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2004, 16:50
|
|||
|---|---|---|---|
|
|||
Возвращение в первую строку |
|||
|
#18+
Во-первых, я не ясен смысл вот этого: Код: plaintext 1. Во-вторых, не ясно какую роль здесь играет запрос (выборка). ---- лучше напиши, что ты хочешь получить в результате :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2004, 16:50
|
|||
|---|---|---|---|
Возвращение в первую строку |
|||
|
#18+
А где же запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2004, 16:55
|
|||
|---|---|---|---|
|
|||
Возвращение в первую строку |
|||
|
#18+
авторвижу- на след строку переводит Как это можно увидеть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2004, 16:58
|
|||
|---|---|---|---|
Возвращение в первую строку |
|||
|
#18+
Если выборка идет из Табл1, то переходить к следующей строке надо в условии Типа FF(j, i) = DLookup("Mon" & [M] + i, "[Табл1]", "[ComboDeptCode] = " & Str(3340.1000 +j)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2004, 17:02
|
|||
|---|---|---|---|
|
|||
Возвращение в первую строку |
|||
|
#18+
Запрос является источником строк... PP(j, i) - необходим для промежуточных вычислений, поэтому там и сидит k = 0 - обнуляется, иначе будет накопление при переходе, пока не получившимся, на след строку. Сори, что тупо объяснил... Есть запрос как источник данных для отчета. Из запроса с помощью функции вынимаются отпределенные столбцы (поэтому там и есть "Mon" & [M] + i, где вычисления номера столбца переводяться в его название (i - это и есть определенный номер столбца)), которые должны суммироваться. И это должно происходить по всем строкам запроса (табл). ело запроса приводить не буду - накручен, да и запрос здесь непричем - что-то в модуле, а я не спец... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2004, 17:06
|
|||
|---|---|---|---|
|
|||
Возвращение в первую строку |
|||
|
#18+
>ВС открываю запрос и прохожу пошагово функцию, после опер. перевода строки - вижу,что маркер перешел.... >RR в условии отбора пробовал...- тоже самое. В итоге сумма нужных столбцов по первой строке на всех строках ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2004, 17:09
|
|||
|---|---|---|---|
|
|||
Возвращение в первую строку |
|||
|
#18+
авторпосле опер. перевода строки - вижу,что маркер перешел.... Что такое опер. перевода строки? Где он в программе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2004, 17:10
|
|||
|---|---|---|---|
Возвращение в первую строку |
|||
|
#18+
FF(j, i) = DLookup("Mon" & [M] + i, "[Табл1]", Условие_Однозначно_Определяющее_Строку_В_зависимости_от_j) Так понятнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2004, 17:14
|
|||
|---|---|---|---|
|
|||
Возвращение в первую строку |
|||
|
#18+
..GoToRecord.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2004, 17:16
|
|||
|---|---|---|---|
|
|||
Возвращение в первую строку |
|||
|
#18+
В приведенной программе нет GoToRecord. Мы какую программу обсуждаем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2004, 17:19
|
|||
|---|---|---|---|
|
|||
Возвращение в первую строку |
|||
|
#18+
>ВС Я пробовал перевод, для того, чтобы самому посмотреть пошаговое суммиррование, потом убедившись, что это не влияет- убрал эту строку. Она стояла сразу за "u=..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2004, 17:21
|
|||
|---|---|---|---|
Возвращение в первую строку |
|||
|
#18+
Судя по приведенному фрагменту программы, данные считываются непосредственно из таблицы Табл1 при помощи DLookup. При чем тут GoToRecord? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2004, 17:53
|
|||
|---|---|---|---|
|
|||
Возвращение в первую строку |
|||
|
#18+
klаd как ты, кстати, вызываешь свою функцию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
22.04.2004, 17:55
|
|||
|---|---|---|---|
|
|||
Возвращение в первую строку |
|||
|
#18+
Прокомментируй, пожалуйста, чем тебе не нравится тебе этот вариант?: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.04.2004, 08:22
|
|||
|---|---|---|---|
|
|||
Возвращение в первую строку |
|||
|
#18+
>Vsevolod V 1.Прошу прощения - вчера пришлось убежать по делам... Функцию вызываю в поле отчета как "Данные поля" 2. Vsevolod FF(j, i) = DLookup("Mon" & [M] + i, "[Табл1]", "[ComboDeptCode] = " & Str(3340.1000 +j)) У меня не проходит - выдаёт ошибку "Несоответствие типов данных в условиях отбора"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.04.2004, 10:19
|
|||
|---|---|---|---|
Возвращение в первую строку |
|||
|
#18+
Еще раз! Вы считываете данные из таблицы Табл1 при помощи DLookup. DLookup находит в Табл1 строку, у которой выполняется условие [ComboDeptCode] = 3340.1000 и из нее считывает данные. Так как условие не меняется, то и выбирается все время одна и та же строка. Чтобы выбрать другую строку, нужно поменять условие: [ComboDeptCode] = ???????? в зависимости от j. Я не знаю, что представляют собой данные ComboDeptCode, поэтому что более конкретное предложить не могу. И еще! Ваша функция с DLookup будет работать очень медленно. Лучше откройте таблицу Табл1 с помощью Recordset и работайте с ним. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.04.2004, 11:08
|
|||
|---|---|---|---|
|
|||
Возвращение в первую строку |
|||
|
#18+
Vsevolod V"Mon" & [M] + i Непонятно, что имел в виду поэт... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.04.2004, 11:36
|
|||
|---|---|---|---|
|
|||
Возвращение в первую строку |
|||
|
#18+
Код: plaintext 1. Таки если хочется таким способом считать суммы, то почему бы не использовать выражение: FF(j, i) = DSum("Mon" & [M] + i, "[Табл1]", "[ComboDeptCode] = 3340.1000") которое вычислит сумму всех строк по полям [Mon1]...[Mon11] при условии, что [ComboDeptCode] = 3340.1000 (если [M]=0) . Хотя в скорости, конечно, несколько проиграешь по сравнению с запросом Select Sum( [Mon1]),...,Sum([Mon11] ) from [Табл1] where [ComboDeptCode] = 3340.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=45&mobile=1&tid=1675116]: |
0ms |
get settings: |
9ms |
get forum list: |
21ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 494ms |

| 0 / 0 |
