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

start [/forum/topic.php?fid=45&msg=32493094&tid=1675116]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
199ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 464ms |

| 0 / 0 |
