|
|
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
в общем есть табличная форма вида: поле1, поле2, поле3, ВычПоле (вычисляется функцией во внешнем модуле) И надо ее напечатать. Я делаю отчет, но ВычПоле для всех записей в отчете получается одно и то же (т.е. вычисление только для первой записи) и дальше оно повторяется. По идее выход - в создании поля в таблице на которой основана форма и записывать туда вычисление для каждой записи, тогда и отчет без проблем. Подскажите плиз как это организовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:10:29 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
Покажи функцию и как вычисляешь Есть подозрение, что в функцию надо передавать параметры в зависимости от записи в табле (капример ключик), и уже на его основе вычислять значение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:15:51 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
Во, во лучше с таблице работай, на основе которой делается форма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:20:45 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
Если я правильно понял, то это должно подойти 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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:24:30 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
Конечно код требует адаптации под конкретные нужды ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:26:12 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
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 Вот это телепатия Даже текст функции смог проинтуичить :))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:26:49 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
Какая разница, в форме все работает! А работает потому что это вычполе считается для каждой записи табличной формы Ну вот тебе функция: 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 в них часы и минуты сколько отработал чел в этот день. Функция считает сколько часов отработал сотрудник за месяц. Но это неважно. В форме как-то идет привязка к записи. А для отчета у меня та же функция (форма понятно остается открытой) и считает только первую запись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:27:14 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
openrecordset... movenext... #?@дец. А попроще нельзя как я предложил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:30:17 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
авторmystr = Forms!форма1.TABL1.Form(CStr(i)) А кто вам сказал, что указатель в форме прыгает вместе с вашей функцией? Стоит форма на одной записи - вот по ней и считает Я же уже сказал Передавайте в функцию ключик (в данном случае код_сотрудника) И вычисляйте прямо из таблицы, а не из формы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:33:45 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
Во какой непонятливый попался, ему говорят из табла, значит из табла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:36:52 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
paparome А кто вам сказал, что указатель в форме прыгает вместе с вашей функцией? Стоит форма на одной записи - вот по ней и считает НО КАК-ТО ЖЕ ОНО СЧИТАЕТ ПРАВИЛЬНО ДЛЯ ВСЕХ ЗАПИСЕЙ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:38:15 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
Перестань спорить и попробуй как люди советуют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:40:49 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
авторНО КАК-ТО ЖЕ ОНО СЧИТАЕТ ПРАВИЛЬНО ДЛЯ ВСЕХ ЗАПИСЕЙ Считается - но в форме Где если вы считаете для 3-й строки, то и значения он из нее берет А в отчете вы обращаетесь к форме - и строка там всегда одна и та же . И если, честно, то я бы и в форме не стал так считать - ну не доверяю я такому методу - из функции обращаться к контролам на ленточной(таблицной) форме и надеятся, то он их возьмет из нужной строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:43:44 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
А как из табла? Для контрола вычполя формы ставлю =myfunc(). Если я правильно понял приведенный код будет вместо моего. Ну какой смысл делать мувнекст, если оно и так считает нормально? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:43:44 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
Так - структуры таблицы не дал - теперь сам мучайся Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. авторДля контрола вычполя формы ставлю =myfunc(). И ставишь =otr_ch([код_сотрудника]) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 13:49:58 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
Set rst = CurrentDb.OpenRecordset("...") на этой строке выскакивает type mismatch. Может быть потому что пишу во внешнем модуле? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 15:20:13 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 15:22:34 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
gorobets dimaSet rst = CurrentDb.OpenRecordset("...") на этой строке выскакивает type mismatch. Может быть потому что пишу во внешнем модуле? Дык - версия акса какая? Это я для DAO написал (Акс 97) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 15:23:03 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
У меня уже крыша едет У меня записи добавляются запросом т.е. поле1, поле2, otr_ch(поле1 например), .... поле10, поле11 т.е. запись еще не добавлена select не катит КОРОЧЕ: куда ставить =otr_ch() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 16:38:29 |
|
||
|
Проблема с вычисляемым полем отчета
|
|||
|---|---|---|---|
|
#18+
Как это не добавлена А на основе чего у вас форма открывается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.06.2004, 16:40:45 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32567184&tid=1673729]: |
0ms |
get settings: |
10ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
214ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 559ms |

| 0 / 0 |
