LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Допечатка...
 Тема: Допечатка новых записей...
 
 15.06.2007 21:08:10
rsvirus
9 сообщения


Тема: Допечатка новых записей...
У меня вопросец по Access2000.
Ситуация: сделал отчет (по сути - бланк), в котором более 160 показателей (полей из разных таблиц, связанных как "1 ко многим" с главной), причем большинство показателей - динамические, меняются min 1 раз в день (дело происходит в отделении реанимации...). В отчете - как и полагается, куча подчиненных отчетов, синхронизированных по счетчику (ID больного).
Проблема: этот бланк надо печатать min раз в сутки, он на трех страницах А4, некоторых больных мы "ведем" до двух недель и больше, больных бывает в отделении около 1000 в год... короче - гора бумаги, да не только в этом дело, просто неудобно - 2-3 поля изменились - надо распечатывать снова (можно бы и от руки дописывать, но на кой тогда компьютер? :( )...
Вопрос: как программно решить это дело? т.е. чтобы новые записи ДОПЕЧАТЫВАТЬ в отчет не ПЕРЕпечатывая старых.Уже всю голову сломал, думаючи...
Подвопрос: а есть ли в VBA возможность реализовать двухстороннюю печать?
Буду благодарен за любую подсказку, ссылку или совет.




P.S. Использование принтера
Автор: rsvirus от 05.03.2004 3:37:30 Источник ...
 15.06.2007 21:08:10
Dmitry
18 сообщения


RE: Допечатка новых записей...
http://www.msaccess.ru/js_reports_02.html
Там подробно описано как и что....


P.S. Использование принтера
Автор: Dmitry от 05.03.2004 8:22:26 Источник ...
 15.06.2007 21:08:10
rsvirus
9 сообщения


RE: Допечатка новых записей...
Спасибо!
Двухстороняя распечатка работает как надо. Только пришлось немного переделать код, чтобы
пользователь успел перевернуть листы (просто вставил MsgBox)...

Private Sub ПечатьОтчета_Click()
Print2SizeReport acPreview ; тут вызываем процедуру 2-хсторонней печати
End Sub


Public Sub Print2SizeReport(Rep As String)
DoCmd.OpenReport "Rep", acPreview
DoCmd.Minimize
Dim KolPages As Integer, KolList As Integer, i As Integer
KolPages = Reports("Rep")![Страниц]
KolList = Int(KolPages / 2) + IIf(KolPages Mod 2 = 0, 0, 1)
If MsgBox("Вставьте в принтер " & KolList & " листа .", vbOKCancel) = vbOK Then
For i = 1 To KolList * 2 - 1 Step 2
DoCmd.SelectObject acReport, "Rep"
DoCmd.PrintOut acPages, i, i
Next i
MsgBox "После того как принтер напечатает 1 и 3 страницы,переверните " & _ ;ждем пока печатаются
"листы на 180 градусов в продольном направлении и нажмите ОК", vbOKCancel ;нечетные страницы
For i = KolList * 2 To 2 Step -2
If i > KolPages Then
DoCmd.OpenReport "Пустой отчет", acNormal
Else
DoCmd.SelectObject acReport, "Rep"
DoCmd.PrintOut acPages, i, i
End If
Next i
End If
DoCmd.Close acReport, "Rep"
End Sub

З.Ы. А вот вопрос с допечаткой, к сожалению пока открыт, таки ничего не нашел :(


P.S. Использование принтера
Автор: rsvirus от 06.03.2004 17:06:41 Источник ...
 15.06.2007 21:08:10
rsvirus
9 сообщения


RE: Допечатка новых записей...
Спасибо!
Двухстороняя распечатка работает как надо. Только пришлось немного переделать код, чтобы
пользователь успел перевернуть листы (просто вставил MsgBox)...

Private Sub ПечатьОтчета_Click()
Print2SizeReport acPreview ; тут вызываем процедуру 2-хсторонней печати
End Sub


Public Sub Print2SizeReport(Rep As String)
DoCmd.OpenReport "Rep", acPreview
DoCmd.Minimize
Dim KolPages As Integer, KolList As Integer, i As Integer
KolPages = Reports("Rep")![Страниц]
KolList = Int(KolPages / 2) + IIf(KolPages Mod 2 = 0, 0, 1)
If MsgBox("Вставьте в принтер " & KolList & " листа .", vbOKCancel) = vbOK Then
For i = 1 To KolList * 2 - 1 Step 2
DoCmd.SelectObject acReport, "Rep"
DoCmd.PrintOut acPages, i, i
Next i
MsgBox "После того как принтер напечатает 1 и 3 страницы,переверните " & _ ;ждем пока печатаются
"листы на 180 градусов в продольном направлении и нажмите ОК", vbOKCancel ;нечетные страницы
For i = KolList * 2 To 2 Step -2
If i > KolPages Then
DoCmd.OpenReport "Пустой отчет", acNormal
Else
DoCmd.SelectObject acReport, "Rep"
DoCmd.PrintOut acPages, i, i
End If
Next i
End If
DoCmd.Close acReport, "Rep"
End Sub

З.Ы. А вот вопрос с допечаткой, к сожалению пока открыт, таки ничего не нашел :(


P.S. Использование принтера
Автор: rsvirus от 06.03.2004 17:06:55 Источник ...
 15.06.2007 21:08:10
rsvirus
9 сообщения


RE: Допечатка новых записей...
Спасибо!
Двухстороняя распечатка работает как надо. Только пришлось немного переделать код, чтобы
пользователь успел перевернуть листы (просто вставил MsgBox)...

Private Sub ПечатьОтчета_Click()
Print2SizeReport acPreview ; тут вызываем процедуру 2-хсторонней печати
End Sub


Public Sub Print2SizeReport(Rep As String)
DoCmd.OpenReport "Rep", acPreview
DoCmd.Minimize
Dim KolPages As Integer, KolList As Integer, i As Integer
KolPages = Reports("Rep")![Страниц]
KolList = Int(KolPages / 2) + IIf(KolPages Mod 2 = 0, 0, 1)
If MsgBox("Вставьте в принтер " & KolList & " листа .", vbOKCancel) = vbOK Then
For i = 1 To KolList * 2 - 1 Step 2
DoCmd.SelectObject acReport, "Rep"
DoCmd.PrintOut acPages, i, i
Next i
MsgBox "После того как принтер напечатает 1 и 3 страницы,переверните " & _ ;ждем пока печатаются
"листы на 180 градусов в продольном направлении и нажмите ОК", vbOKCancel ;нечетные страницы
For i = KolList * 2 To 2 Step -2
If i > KolPages Then
DoCmd.OpenReport "Пустой отчет", acNormal
Else
DoCmd.SelectObject acReport, "Rep"
DoCmd.PrintOut acPages, i, i
End If
Next i
End If
DoCmd.Close acReport, "Rep"
End Sub

З.Ы. А вот вопрос с допечаткой, к сожалению пока открыт, таки ничего не нашел :(


P.S. Использование принтера
Автор: rsvirus от 06.03.2004 17:07:38 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Допечатка...
ПоискПоиск  Список форумовСписок форумов  
right