Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: MS ACCESS

Вопросы связанные с MS ACCESS

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: отчет
 
 автор: Чайник2007   (18.12.2007 в 14:58)   личное сообщение
 
 

Как сделать на основе этого куска кода чтобы если больше шести человечков- количество человечков и сумма прописью количество человечков -печатались на втором листе а на первом нет
'--------------- подсчитать количество листов
КОЛИЧЕСТВО_ЧЕЛОВЕК = 0
T_L.Seek "=", FF![Ключ]
If Not T_L.NoMatch Then
Do Until T_L.EOF
If T_L![КлючСписки] = FF![Ключ] Then
КОЛИЧЕСТВО_ЧЕЛОВЕК = КОЛИЧЕСТВО_ЧЕЛОВЕК + 1
Else
Exit Do
End If
T_L.MoveNext
Loop
End If

КОЛИЧЕСТВО_ЛИСТОВ = 1
If КОЛИЧЕСТВО_ЧЕЛОВЕК > 6 Then
КОЛИЧЕСТВО_ЛИСТОВ = КОЛИЧЕСТВО_ЧЕЛОВЕК / 6
i = КОЛИЧЕСТВО_ЧЕЛОВЕК Mod 6
If i > 0 Then КОЛИЧЕСТВО_ЛИСТОВ = КОЛИЧЕСТВО_ЛИСТОВ + 1
End If


End Sub
--------------------------
Private Sub НижнийКолонтитул_Format(Cancel As Integer, FormatCount As Integer)

Me![Число] = КОЛИЧЕСТВО_ЧЕЛОВЕК
Me![Сумма] = SUMMA_PROP(КОЛИЧЕСТВО_ЧЕЛОВЕК)

End Sub

  Ответить  
 
 автор: alecks_lp   (18.12.2007 в 17:35)   личное сообщение
 
 

вставьте в область данных элемент управления 'разрыв страницы', например ctlPageBreak
ctlPageBreak.Visible=(КОЛИЧЕСТВО_ЧЕЛОВЕК Mod 6)=0

  Ответить  
 
 автор: Чайник2007   (18.12.2007 в 18:17)   личное сообщение
8 Кб.
 
 

ctlPageBreak.Visible = (КОЛИЧЕСТВО_ЧЕЛОВЕК Mod 6) = 0
Вылазит ошибка

  Ответить  
 
 автор: alecks_lp   (18.12.2007 в 19:49)   личное сообщение
 
 

Поясните мне:
КОЛИЧЕСТВО_ЧЕЛОВЕК - счетчик записей для вывода в отчет?
Вы хотите, чтобы на каждой странице выводилось по 6 записей?

  Ответить  
 
 автор: Чайник2007   (18.12.2007 в 20:15)   личное сообщение
 
 

На каждой странице должно 6 человек , а если более 6 человек печатаем общую сумму на втором ,на первом не нужно и т.д

  Ответить  
 
 автор: alecks_lp   (18.12.2007 в 20:32)   личное сообщение
60 Кб.
 
 

Так нормально?

  Ответить  
 
 автор: Чайник2007   (18.12.2007 в 20:55)   личное сообщение
 
 

Нет это у меня все работает .Поясню еще раз.У меня стандарный бланк, на листе шесть человечков .Раньше было так: общая сумма людей (к примеру 12 чел.) печаталась и на первом и на втором листах, А теперь нужно чтобы общая сумма выводилась только на втором листе и т.д . в зависимости от количества людей. Мне кажется нужно к коду добавить если более 6 то на первом листе общую сумму не печатать а печатать на втором . Как все это реализовать?

  Ответить  
 
 автор: alecks_lp   (19.12.2007 в 07:21)   личное сообщение
 
 


нужно чтобы общая сумма выводилась только на втором листе и т.д . в зависимости от количества людей

Реализовать можно. Понять Вас трудновато. Сформулируйте проблему однозначно.
-общая сумма должна печататься только на последнем листе
-общая сумма всегда не должна печататься на первом листе
-общая сумма должна печататься на первом листе, только если он единственный
-общая сумма всегда должна печататься только со второго листа и далее до конца отчета на каждом листе
-общая сумма должна печататься со второго листа и далее до конца отчета на каждом листе в зависимости от количества людей, например: - если 40 - то печатать, если 60 - то не печатать
-общая сумма должна печататься как текущая для своего листа и далее по нарастанию
-общая сумма всегда является суммой за весь отчет

  Ответить  
 
 автор: Чайник2007   (19.12.2007 в 07:54)   личное сообщение
 
 

общая сумма должна печататься на первом листе, если есть 2 лист то на втором листе на первом не нужно и далее по нарастанию при условии 6 человек на листе.

  Ответить  
 
 автор: alecks_lp   (19.12.2007 в 09:35)   личное сообщение
30 Кб.
 
 

примерно

  Ответить  
 
 автор: Чайник2007   (19.12.2007 в 13:52)   личное сообщение
 
 

Если до 6 сумму кол.чел. печатаем на первом листе, если до 12 сумму кол.чел. печатаем на 2 листе на первом не надо, если до18 сумму кол.чел. печатаем на 3 листе на первом и втором не надо и т.д.
--------------------------------------------------------------------------------------------------
Изменил малость, вот что получилось If Me.Page < 2 или 3 и т.д меняю количество листов ,если до 6 человек то If Me.Page <1 если до 12 чел. то If Me.Page <2 . Как вот эту переменную сделать так чтобы от количества людей она менялась и тогда получится все окей.
Private Sub НижнийКолонтитул_Format(Cancel As Integer, FormatCount As Integer)

If Me.Page < 2 Then
Cancel = True
Else
Me![Число] = КОЛИЧЕСТВО_ЧЕЛОВЕК
Me![Сумма] = SUMMA_PROP(КОЛИЧЕСТВО_ЧЕЛОВЕК)
End If
End Sub

  Ответить  
 
 автор: alecks_lp   (19.12.2007 в 14:54)   личное сообщение
 
 

Уважаемый! Вы писали

<<и далее по нарастанию>>

Так и сделал!
А пояснили бы что итог нужен на последнем листе! Ставьте его в примечание и не парьтесь! От использования Pages я воздерживаюсь, потому что в этом случае при большом количестве листов отчет заметно притормаживает.

  Ответить  
 
 автор: Чайник2007   (19.12.2007 в 15:51)   личное сообщение
 
 

У меня бланк и если в примечание отчета ставить ,настройка будет сложная чтобы попасть в графу.Проверено

  Ответить  
 
 автор: alecks_lp   (19.12.2007 в 16:09)   личное сообщение
 
 

Проще перенести бланк в макет отчета!

  Ответить  
 
 автор: Чайник2007   (19.12.2007 в 16:21)   личное сообщение
 
 

Решение найдено. Спасибо за поддержку. Выкладываю , может кому пригодиться,
If Me.Page < (Me.Pages - 1) Then
Cancel = True
Else
Me![Число] = КОЛИЧЕСТВО_ЧЕЛОВЕК
Me![Сумма] = SUMMA_PROP(КОЛИЧЕСТВО_ЧЕЛОВЕК)
End If
End Sub

  Ответить  
 
 автор: alecks_lp   (20.12.2007 в 08:13)   личное сообщение
 
 

молодца

  Ответить  
 
 автор: Чайник2007   (21.12.2007 в 15:21)   личное сообщение
 
 

Нет ! Все равно сбой идет!

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList