powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Возвращение в первую строку
19 сообщений из 19, страница 1 из 1
Возвращение в первую строку
    #32492406
klаd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как не кручу - подсчет производится только по первой строке запроса. Исходные данные для выполнения модуля - запрос (выборка).
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 ...... и т.д.
Дело в том, что накопление и идет только по одной строке. Пробовал даже "отсылать" на следующую строку, При открытом запросе вижу- на след строку переводит, но вычисляет только по первой.
Как упразднить такое деяние - подскажите.
благодарю.
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32492426
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, я не ясен смысл вот этого:
Код: plaintext
1.
PP(j, i) = k 
k =  0  

Во-вторых, не ясно какую роль здесь играет запрос (выборка).
----
лучше напиши, что ты хочешь получить в результате :)
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32492427
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А где же запрос?
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32492451
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
авторвижу- на след строку переводит
Как это можно увидеть?
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32492462
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если выборка идет из Табл1, то переходить к следующей строке надо в условии
Типа
FF(j, i) = DLookup("Mon" & [M] + i, "[Табл1]", "[ComboDeptCode] = " & Str(3340.1000 +j))
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32492474
klаd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Запрос является источником строк...
PP(j, i) - необходим для промежуточных вычислений, поэтому там и сидит
k = 0 - обнуляется, иначе будет накопление при переходе, пока не получившимся, на след строку.
Сори, что тупо объяснил... Есть запрос как источник данных для отчета.
Из запроса с помощью функции вынимаются отпределенные столбцы (поэтому там и есть "Mon" & [M] + i, где вычисления номера столбца переводяться в его название (i - это и есть определенный номер столбца)), которые должны суммироваться. И это должно происходить по всем строкам запроса (табл).
ело запроса приводить не буду - накручен, да и запрос здесь непричем - что-то в модуле, а я не спец...
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32492485
klаd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>ВС
открываю запрос и прохожу пошагово функцию, после опер. перевода строки - вижу,что маркер перешел....
>RR
в условии отбора пробовал...- тоже самое. В итоге сумма нужных столбцов по первой строке на всех строках
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32492492
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
авторпосле опер. перевода строки - вижу,что маркер перешел....
Что такое опер. перевода строки? Где он в программе?
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32492494
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FF(j, i) = DLookup("Mon" & [M] + i, "[Табл1]", Условие_Однозначно_Определяющее_Строку_В_зависимости_от_j)

Так понятнее
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32492507
klаd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
..GoToRecord..
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32492514
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
В приведенной программе нет GoToRecord. Мы какую программу обсуждаем?
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32492523
klаd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>ВС
Я пробовал перевод, для того, чтобы самому посмотреть пошаговое суммиррование, потом убедившись, что это не влияет- убрал эту строку. Она стояла сразу за "u=..."
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32492530
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по приведенному фрагменту программы, данные считываются непосредственно из таблицы Табл1 при помощи DLookup. При чем тут GoToRecord?
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32492646
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
klаd
как ты, кстати, вызываешь свою функцию?
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32492657
Фотография Vsevolod V
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прокомментируй, пожалуйста, чем тебе не нравится тебе этот вариант?:
Код: plaintext
FF(j, i) = DLookup( "Mon"  & [M] + i,  "[Табл1]" ,  "[ComboDeptCode] = "  & Str (3340  .1000  +j))
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32493094
klаd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
>Vsevolod V

1.Прошу прощения - вчера пришлось убежать по делам...
Функцию вызываю в поле отчета как "Данные поля"
2. Vsevolod FF(j, i) = DLookup("Mon" & [M] + i, "[Табл1]", "[ComboDeptCode] = " & Str(3340.1000 +j))

У меня не проходит - выдаёт ошибку "Несоответствие типов данных в условиях отбора"...
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32493295
Roma R
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще раз!
Вы считываете данные из таблицы Табл1 при помощи DLookup. DLookup находит в Табл1 строку, у которой выполняется условие [ComboDeptCode] = 3340.1000 и из нее считывает данные. Так как условие не меняется, то и выбирается все время одна и та же строка. Чтобы выбрать другую строку, нужно поменять условие: [ComboDeptCode] = ???????? в зависимости от j. Я не знаю, что представляют собой данные ComboDeptCode, поэтому что более конкретное предложить не могу.

И еще! Ваша функция с DLookup будет работать очень медленно. Лучше откройте таблицу Табл1 с помощью Recordset и работайте с ним.
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32493464
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Vsevolod V"Mon" & [M] + i
Непонятно, что имел в виду поэт...
...
Рейтинг: 0 / 0
Возвращение в первую строку
    #32493565
Stok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Возвращение в первую строку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]