powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с вычисляемым полем отчета
21 сообщений из 21, страница 1 из 1
Проблема с вычисляемым полем отчета
    #32567126
gorobets dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем есть табличная форма вида: поле1, поле2, поле3, ВычПоле (вычисляется функцией во внешнем модуле)

И надо ее напечатать. Я делаю отчет, но ВычПоле для всех записей в отчете получается одно и то же (т.е. вычисление только для первой записи) и дальше оно повторяется. По идее выход - в создании поля в таблице на которой основана форма и записывать туда вычисление для каждой записи, тогда и отчет без проблем. Подскажите плиз как это организовать.
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567143
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажи функцию и как вычисляешь

Есть подозрение, что в функцию надо передавать параметры в зависимости от записи в табле (капример ключик), и уже на его основе вычислять значение
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567160
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во, во лучше с таблице работай, на основе которой делается форма.
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567173
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понял, то это должно подойти

na = "SELECT * FROM Zaklongs2 Where LongsName Like '" & tip & "';"
Set rcd = CurrentDb().OpenRecordset(na, dbOpenSnapshot)
Do
I = 1
If rcd.BOF Or rcd.EOF Then Exit Do
Do
If I = 16 Then Exit Do
stolbec = "N" & CStr(I)
If Nz(rcd.Fields(stolbec)) > 0 Then Sum = Sum + 1
I = I + 1
Loop
rcd.MoveNext
Loop
rcd.Close
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567178
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно код требует адаптации под конкретные нужды
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567180
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ProgaЕсли я правильно понял, то это должно подойти

na = "SELECT * FROM Zaklongs2 Where LongsName Like '" & tip & "';"
Set rcd = CurrentDb().OpenRecordset(na, dbOpenSnapshot)
Do
I = 1
If rcd.BOF Or rcd.EOF Then Exit Do
Do
If I = 16 Then Exit Do
stolbec = "N" & CStr(I)
If Nz(rcd.Fields(stolbec)) > 0 Then Sum = Sum + 1
I = I + 1
Loop
rcd.MoveNext
Loop
rcd.Close

Вот это телепатия
Даже текст функции смог проинтуичить :)))
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567184
gorobets dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая разница, в форме все работает! А работает потому что это вычполе считается для каждой записи табличной формы

Ну вот тебе функция:

Public Function otr_ch()
Dim pos, hours, minutes As Integer, mystr As String
hours = 0
minutes = 0
For i = 1 To 31
mystr = Forms!форма1.TABL1.Form(CStr(i))
pos = InStr(mystr, ".")
If pos <> 0 Then
hours = hours + Val(Left(mystr, pos - 1))
minutes = minutes + Val(Mid(mystr, pos + 1))
End If
Next i
otr_ch = hours + minutes \ 60
End Function

В общем есть поля от 1 до 31 в них часы и минуты сколько отработал чел в этот день. Функция считает сколько часов отработал сотрудник за месяц. Но это неважно. В форме как-то идет привязка к записи.

А для отчета у меня та же функция (форма понятно остается открытой)
и считает только первую запись.
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567205
gorobets dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
openrecordset... movenext... #?@дец. А попроще нельзя как я предложил?
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567215
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторmystr = Forms!форма1.TABL1.Form(CStr(i))
А кто вам сказал, что указатель в форме прыгает вместе с вашей функцией?
Стоит форма на одной записи - вот по ней и считает

Я же уже сказал

Передавайте в функцию ключик (в данном случае код_сотрудника)
И вычисляйте прямо из таблицы, а не из формы
?
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567228
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во какой непонятливый попался, ему говорят из табла, значит из табла.
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567235
gorobets dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
paparome
А кто вам сказал, что указатель в форме прыгает вместе с вашей функцией?
Стоит форма на одной записи - вот по ней и считает


НО КАК-ТО ЖЕ ОНО СЧИТАЕТ ПРАВИЛЬНО ДЛЯ ВСЕХ ЗАПИСЕЙ
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567247
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Перестань спорить и попробуй как люди советуют.
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567254
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНО КАК-ТО ЖЕ ОНО СЧИТАЕТ ПРАВИЛЬНО ДЛЯ ВСЕХ ЗАПИСЕЙ

Считается - но в форме
Где если вы считаете для 3-й строки, то и значения он из нее берет
А в отчете вы обращаетесь к форме - и строка там всегда одна и та же .

И если, честно, то я бы и в форме не стал так считать - ну не доверяю я такому методу - из функции обращаться к контролам на ленточной(таблицной) форме и надеятся, то он их возьмет из нужной строки.
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567255
gorobets dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как из табла? Для контрола вычполя формы ставлю =myfunc(). Если я правильно понял приведенный код будет вместо моего. Ну какой смысл делать мувнекст, если оно и так считает нормально?
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567273
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так - структуры таблицы не дал - теперь сам мучайся

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Public Function otr_ch(ByVal aCod_Man as Long) as Integer
Dim pos, hours, minutes As Integer, mystr As String
Dim rs as RecordSet
Dim strSQL as String
strSQL = "Select * From TABL1 Where Cod = " & aCod_Man
Set rs = CurrentDB.OpenrecordSet(strSQL)

hours =  0 
minutes =  0 
For i =  1  To  31 
mystr = rs(CStr(i))
pos = InStr(mystr, ".")
If pos <>  0  Then
hours = hours + Val(Left(mystr, pos -  1 ))
minutes = minutes + Val(Mid(mystr, pos +  1 ))
End If
Next i

rs.Close
Set rs = Noting

otr_ch = hours + minutes \  60 
End Function

авторДля контрола вычполя формы ставлю =myfunc().
И ставишь =otr_ch([код_сотрудника])

?
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567621
gorobets dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Set rst = CurrentDb.OpenRecordset("...")

на этой строке выскакивает type mismatch. Может быть потому что пишу во внешнем модуле?
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567632
Фотография Темный
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Dim rs as DAO.RecordSet
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567635
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gorobets dimaSet rst = CurrentDb.OpenRecordset("...")

на этой строке выскакивает type mismatch. Может быть потому что пишу во внешнем модуле?

Дык - версия акса какая?
Это я для DAO написал (Акс 97)
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567831
gorobets dima
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня уже крыша едет
У меня записи добавляются запросом т.е. поле1, поле2,
otr_ch(поле1 например), .... поле10, поле11

т.е. запись еще не добавлена select не катит

КОРОЧЕ:
куда ставить =otr_ch()
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567839
Фотография paparome
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как это не добавлена
А на основе чего у вас форма открывается?
...
Рейтинг: 0 / 0
Проблема с вычисляемым полем отчета
    #32567847
Proga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опупеть можно насколько приметивен человек.
Там писать 2минуты, а он его час перерабатывает.
Купи книжку себе по VBA.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Проблема с вычисляемым полем отчета
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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