Форум программистов, компьютерный форум, киберфорум
Microsoft Access
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
320 / 135 / 36
Регистрация: 16.03.2013
Сообщений: 1,437
1

Количество экземпляров для печати VBA

18.12.2018, 10:25. Показов 1876. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, подскажите пожалуйста, можно ли указать количество экземпляров при печатании отчета командой из VBA ?
У меня печать маркировочных этикеток реализована командой по нажатию кнопки в форме:
Visual Basic
1
DoCmd.OpenReport "ЭтикеткаXPno", acViewNormal
В этом случае принтер печатает только 1 наклейку, этикетку. А если мне нужно их 10 одинаковых, нужно 10 раз жать кнопку на форме, что не очень удобно. Допустим если ввести в форму поле Me.Qty., которое будет отвечать за количество распечатываемых экземпляров, как нужно в коде это указать и где? Если допустим поле пустое, по умолчанию выходит 1 этикетка если же указано, соответственно выходит заданное количество. Спасибо.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2018, 10:25
Ответы с готовыми решениями:

Как узнать количество страниц при печати в Excel на VBA?
Убедительная просьба помоч!!! Как узнать количество страниц при печати в Excel?

VBA скрипт для печати конвертов для Word документов на ВЫДЕЛЕННОМ принтере
Всем привет! Мне приходится печатать в MS Word 2010 много писем в разные адреса (то есть каждое...

Контроль печати: время печати, количество распечатанных страниц, название файла
Здравствуйте. К компьютеру на Windows XP подключено 2 принтера (хотя драйверов стоит на 4...

Выбрать название продукта, для которого в 1990 г. было продано максимальное количество экземпляров продукта
Нужно сделать запрос , немогу понять в чем причина SELECT , MAX(ITEM.quantity) FROM PRODUCT...

7
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,631
18.12.2018, 10:29 2
Лучший ответ Сообщение было отмечено Braser как решение

Решение

Braser,

Самый примитивный способ - сделать в цикле:
Visual Basic
1
2
3
For i = 1 To Qty
   DoCmd.OpenReport "ЭтикеткаXPno", acViewNormal 
Next
1
320 / 135 / 36
Регистрация: 16.03.2013
Сообщений: 1,437
18.12.2018, 10:33  [ТС] 3
Цитата Сообщение от Capi Посмотреть сообщение
Самый примитивный способ - сделать в цикле
Честно говоря, я вряд ли справлюсь с задачей на основе такого краткого пояснения
0
Модератор
Эксперт MS Access
6012 / 2840 / 693
Регистрация: 12.06.2016
Сообщений: 7,631
18.12.2018, 10:40 4
Braser,

То есть?
Код ведь дан.
Вы разве его не видите?
1
320 / 135 / 36
Регистрация: 16.03.2013
Сообщений: 1,437
18.12.2018, 10:51  [ТС] 5
Цикл вставил, работает. Спасибо. Единственное что не очень удобно, окно сообщения о печати торчит пока все экземпляры не распечатаются

Добавлено через 1 минуту
Вот
Visual Basic
1
2
3
4
5
6
7
8
Private Sub Кнопка1_Click()
Application.Printer = Application.Printers("Xprinter XP-360B")
 
For i = 1 To Nz(Qty, 1)
   DoCmd.OpenReport "ЭтикеткаXPno", acViewNormal
Next
 
End Sub
Добавлено через 7 минут
Спасибо, все работает
0
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,477
18.12.2018, 14:20 6
Цитата Сообщение от Braser Посмотреть сообщение
подскажите пожалуйста, можно ли указать количество экземпляров при печатании отчета командой из VBA ?
Когда-то имел написать такое:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Dim intPgStart As Integer 'Нач страница
Dim intPgEnd As Integer   'Конечная страница
Dim intCop As Integer     'Кол-во копий
    
    intPgStart = 1
    intPgEnd = 3
    intCop = 2
    
'Печатаем с 1-й по 3-ю страницу отчета в 2-х экземп-х ...
    DoCmd.OpenReport "ОтчетПродаж", acPreview, , , acHidden
    DoCmd.PrintOut acPages, intPgStart, intPgEnd, , intCop, False
    DoCmd.Close acReport, "ОтчетПродаж"
смотрите на DoCmd.PrintOut
1
431 / 239 / 86
Регистрация: 09.04.2018
Сообщений: 1,023
18.12.2018, 19:06 7
Цитата Сообщение от Eugene-LS Посмотреть сообщение
Когда-то имел написать такое:
а как сделать, чтобы количество копий запрашивалось?
0
10472 / 5458 / 1375
Регистрация: 05.10.2016
Сообщений: 15,477
18.12.2018, 19:15 8
Цитата Сообщение от Kiriver Посмотреть сообщение
а как сделать, чтобы количество копий запрашивалось?
Ну можно так:
Запрос данных от Пользователя:
Выводит окно для ввода данных пользователем, со значением по умолчанию = 0

Visual Basic
1
2
3
4
5
6
7
Dim val As Variant
Dim Message  As String, Title  As String, Default As String
    Message = "Ввведите количество копий "
    Title = "Запрос данных"
    Default = 1 'Значение по умолчанию
    val = InputBox(Message, Title, Default)
    MsgBox "Пользователь ввел: " & val
1
18.12.2018, 19:15
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.12.2018, 19:15
Помогаю со студенческими работами здесь

Функция getPies(mapAlice) для печати количество различных маршрутов
У Боба есть электрический самокат, на котором он любит кататься по городу. В зависимости от режима...

Динамический массив экземпляров класса, с неизвестным количеством экземпляров
Доброго времени суток. По ходу работы, программно должны создаваться и удаляться объекты класса....

В классе данных определите переменные экземпляров.Значения переменных экземпляров должны быть введены с клавиатуры
В классе данных определите переменные экземпляров.Значения переменных экземпляров должны быть...

Фабрика печати Epson или лазерный принтер для ч/б печати
Здравствуйте! Нужен практичный принтер с (!)дешёвой стоимостью печати. Печатаю в основном...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru