Свойствата на принтера не наследяват от обекти, които използват принтера по подразбиране

Работете навсякъде от всяко устройство с Microsoft 365

Надстройте до Microsoft 365, за да работите навсякъде с най-новите функции и актуализации.

Надстройване сега

Advanced: изисква експертно кодиране, оперативна съвместимост и многопотребителски умения. Тази статия се отнася за Microsoft Access база данни (. mdb) или Microsoft Office Access 2007 база данни (. accdb). Тази статия се отнася и за проект на Microsoft Access (. ADP).

Симптоми

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

Причина

Запазените формуляри и отчети съхраняват информацията за принтера като част от тяхната дефиниция. Когато визуализирате или отпечатате запаметени формуляри и отчети, тези обекти използват информацията за принтера, която се съхранява в тях, вместо да наследява настройките от приложението. обект на принтера.

Решение

Има два възможни решения, за да накарате отчета да използва текущите настройки на принтера. Microsoft предоставя примерни примери само за илюстрация, без гаранция изрични или подразбиращи се. Това включва, но не се ограничава до, подразбиращи се гаранции за продаваемост или пригодност за определена цел. Тази статия се предполага, че сте запознати с езика за програмиране, който се демонстрира и с инструментите, които се използват за създаване и отстраняване на грешки процедури. Инженерите по поддръжката на Microsoft могат да обяснят функционалността на определена процедура, но няма да променят тези примери, за да предоставят допълнителна функционалност или да изграждат процедури, които да отговорят на вашите специфични изисквания.

Задаване на свойството на принтера за приложение.

След като персонализирате свойствата на приложението. обект на принтера, Задайте свойството на принтера на формуляра или отчета на приложението. обект на принтера. Това принуждава формуляра или отчета, за да унищожи сегашния си DEVMODE структура и да наследи нов от приложението. принтер обект. Обърнете внимание, че този подход е добър за временно промяна на свойствата на принтера на обекта. Настройките на принтера няма да се съхраняват с обекта, освен ако изрично запишете обекта след това. Това също води до обекта да бъде зададен на конкретен принтер за периода от време, че е отворен. За да зададете свойството на обекта на принтера на приложението. обект на принтера, изпълнете следните стъпки:

  1. Отворете извадката база данни Northwind. MDB.

  2. Когато се появи, затворете формуляра за основно табло.

  3. Натиснете ALT + F11, за да отворите редактора на Visual Basic.

  4. В менюто Вмъкване щракнете върху Модул.

  5. Добавете следния код на Visual Basic за приложения към новия модул:

    Sub ChangePrinterSettingsForReport()   Dim rpt As Access.Report   Dim prtr As Access.Printer      Set Application.Printer = Nothing   Set prtr = Application.Printer      'Set the default printer's orientation to landscape   prtr.Orientation = acPRORLandscape   'Set the default printer's paper size to legal   prtr.PaperSize = acPRPSLegal   'Print Preview the Alphabetical List of Products Report   DoCmd.OpenReport "Alphabetical List of Products", acPreview   Set rpt = Reports("Alphabetical List of Products")   'Set the Printer property of the report to the   'Application.Printer object   Set rpt.Printer = prtr   'Uncomment the following line if you wish to save the object   'with the current settings   'DoCmd.Save acReport, rpt.NameEnd Sub
  6. Щракнете върху процедурата на извадката по-горе и след това в менюто изпълнение , щракнете върху Изпълнявай под/UserForm.

  7. В менюто файл щракнете върху Затвори и връщане към Microsoft достъп.

  8. В Microsoft Office Access 2003 или в Microsoft Access 2002 щракнете върху Настройка на страницата в менюто файл и след това щракнете върху раздела страница . В Microsoft Office Access 2007 щракнете върху бутона Microsoft Office, посочетеОтпечатайслед това щракнете върху Визуализация на печата. В разделаВизуализация на печата щракнете върху Настройка на страницата в групатаоформление на страницата и след това щракнете върху раздела страница. Имайте предвид, че отчетът размер на хартията е настроен на юридическии ориентацията е настроен на пейзаж.

  9. Затворете отчета.

  10. В прозореца на базата данни визуализация на отпечатване на отчета азбучен списък на продуктите отново. Обърнете внимание, че настройките на принтера не са записани автоматично с отчета.

Присвояване на настройките на принтера на обекта директно

Друго решение е да зададете програмно настройките на принтера на самия обект, вместо да ги задавате на приложението. свойство на принтера. Задаването на отделните свойства на свойството на принтера на обекта е подобно на потребителя, който ръчно променя настройките на принтера в диалоговия прозорец " Настройка на страницата ". Когато програмирано настроите обекта на настройките на принтера директно, настройките се записват с обекта автоматично. За да зададете директно настройките на принтера на обекта, изпълнете следните стъпки:

  1. Отворете извадката база данни Northwind. MDB.

  2. Когато се появи, затворете формуляра за основно табло.

  3. Натиснете ALT + F11, за да отворите редактора на Visual Basic.

  4. В менюто Вмъкване щракнете върху Модул.

  5. Добавете следния код на Visual Basic за приложения към новия модул:

    Sub ChangePrinterSettingsForReport()   Dim rpt As Access.Report     DoCmd.OpenReport "Alphabetical List of Products", acPreview   Set rpt = Reports("Alphabetical List of Products")         'Set the default printer's orientation to landscape   rpt.Printer.Orientation = acPRORLandscape   'Set the default printer's paper size to legal   rpt.Printer.PaperSize = acPRPSLegalEnd Sub
  6. Щракнете върху процедурата на извадката по-горе и след това в менюто изпълнение , щракнете върху Изпълнявай под/UserForm.

  7. В менюто файл щракнете върху Затвори и връщане към Microsoft достъп.

  8. В менюто файл щракнете върху настройцаислед това щракнете върху раздела страница . В Microsoft Office Access 2007 щракнете върху бутона Microsoft Office, посочетеОтпечатайслед това щракнете върху Визуализация на печата. В разделаВизуализация на печата щракнете върху Настройка на страницата в групатаоформление на страницата и след това щракнете върху раздела страница. Имайте предвид, че отчетът размер на хартията е настроен на юридическии ориентацията е настроен на пейзаж.

  9. Затворете отчета.

  10. В прозореца на базата данни визуализация на отпечатване на отчета азбучен списък на продуктите отново. Имайте предвид, че настройките на принтера са били автоматично записани с отчета.

Статут

Това поведение е по дизайн.

Повече информация

Формулярите и отчетите съхраняват структура с име DEVMODE като част от тяхната дефиниция. DEVMODE структурата е структура на Microsoft Windows, която определя информация за принтера за конкретен обект. Например елементи като размер на хартията, хартиена клетка и ориентация се съхраняват като част от тази структура. Когато създавате нов формуляр или обект на отчет, формуляр или обект на отчет автоматично наследява DEVMODE структура от приложението. обект на принтера. Когато записвате формуляр или отчет, DEVMODE структура, която е наследена автоматично се записва с него. По подразбиране свойствата на принтера за приложението. Принтерният обект ще бъде същият като принтера по подразбиране в Microsoft Windows. Обаче е възможно да промените програмно тези свойства, така че Microsoft Access използва различен набор от свойства за принтера по подразбиране. Таблиците, заявките, изгледите и съхранените процедури не съхраняват информацията за принтера като част от тяхната дефиниция. Поради това, когато отпечатвате таблици, заявки, изгледи или съхранени процедури, те винаги ще използват текущите настройки, дефинирани в приложението. обект на принтера.

Стъпки за възпроизвеждане на поведението

  1. В Access 2003 или в Access 2002 Отворете пробата база данни Northwind. MDB.

  2. Когато се появи, затворете формуляра за основно табло.

  3. В менюто изглед посочете обекти на базата даннии след това щракнете върху отчети.

  4. Щракнете върху азбучен списък на продуктите в прозореца на базата данни и след това в менюто файл щракнете върху Настройка на страницата.

  5. Щракнете върху раздела страница и проверете дали е избрана опцията принтер по подразбиране в секцията принтер на диалоговия прозорец.

  6. Щракнете върху OK , за да затворите диалоговия прозорец за Настройка на страницата .

  7. В менюто Вмъкване щракнете върху Модул.

  8. Добавете следния код на Visual Basic за приложения към модула:

    Sub ChangePrinterSettings()   'Set the default printer's orientation to landscape   Application.Printer.Orientation = acPRORLandscape   'Set the default printer's paper size to legal   Application.Printer.PaperSize = acPRPSLegalEnd Sub
  9. Щракнете върху процедурата на извадката по-горе и след това в менюто изпълнение , щракнете върху Изпълнявай под/UserForm.

  10. В менюто файл щракнете върху Затвори и връщане към Microsoft достъп.

  11. В менюто изглед посочете обекти на базата даннии след това щракнете върху заявки.

  12. Щракнете върху азбучен списък на продукти Query и след това в менюто файл , щракнете върху Визуализация на печата.

  13. В менюто файл щракнете върху Настройка на страницата.

  14. Щракнете върху раздела страница имайте предвид, че ориентацията е настроен на пейзаж и размер на хартията е зададена на законно , както се очаква.

  15. Щракнете върху "отказ ", за да затворите диалоговия прозорец " Настройка на страницата " и след това затворете заявката.

  16. В менюто изглед посочете обекти на базата даннии след това щракнете върху отчети.

  17. В прозореца на базата данни щракнете върху азбучен списък на продукти и след това щракнете върху Визуализация.

  18. В менюто файл щракнете върху Настройка на страницата.

  19. Щракнете върху раздела страница обърнете внимание, че ориентацията е зададена на портрет и опция за размер на хартията е зададена на буква, която се различава от настройките, направени на приложението. обект на принтера.

Нуждаете се от още помощ?

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×