Varsayılan yazıcıyı kullanan nesneler tarafından devralınmayan yazıcı özellikleri

Gelişmiş: Uzman kodlama, birlikte çalışabilirlik ve çok kullanıcılı beceriler gerektirir. Bu makale, bir Microsoft Access veritabanı (.mdb) veya Microsoft Office Access 2007 veritabanı (.accdb) için geçerlidir. Bu makale, bir Microsoft Access projesi (.adp) için de geçerlidir.

Belirtiler

Application.Printer nesnesinin özelliklerini programlı bir şekilde değiştirdikten sonra, varsayılan yazıcıyı kullanan formlar ve raporlar bu ayarları otomatik olarak devralmaz.

Neden

Kaydedilen formlar ve raporlar, yazıcı bilgilerini tanımlarının bir parçası olarak depolar. Kaydedilen formları ve raporları önneveya yazdırdığınızda, bu nesneler Uygulamaları.Yazıcı nesnesinden ayarları devralmak yerine içinde depolanan yazıcı bilgilerini kullanır.

Çözüm

Raporu geçerli yazıcı ayarlarını kullanmaya zorlamak için iki olası geçici çözüm vardır. Microsoft, yalnızca ifade veya zımni garanti olmaksızın yalnızca illüstrasyon için programlama örnekleri sağlar. Bu, ancak belirli bir amaç için satılabilirlik veya uygunluk zımni garantiler içerir, ancak bunlarla sınırlı değildir. Bu makalede, gösterildiği programlama dilini ve yordamları oluşturmak ve hata ayıklamak için kullanılan araçlara aşina olduğunuzu varsayar. Microsoft destek mühendisleri belirli bir yordamın işlevselliğini açıklamaya yardımcı olabilir, ancak belirli gereksinimlerinizi karşılamak için ek işlevsellik veya yapı yordamları sağlamak için bu örnekleri değiştirmez.

Yazıcı Özelliğini Application.Printer olarak ayarlayın

Application.Printer nesnesinin özelliklerini özelleştirdikten sonra, formun Yazıcı özelliğini ayarlayın veya Application.Printer nesnesine bildirin. Bu, formu veya raporu geçerli DEVMODE yapısını yok etmeye ve Application.Printer nesnesinden yeni bir tane devralmaya zorlar. Bu yaklaşımın nesnenin yazıcı özelliklerini geçici olarak değiştirmek için iyi olduğunu unutmayın. Daha sonra nesneyi açıkça kaydetmediğiniz sürece yazıcı ayarları nesneyle birlikte depolanmaz. Bu, nesnenin açık olduğu süre için Belirli Yazıcı'ya ayarlanabına da neden olur. Nesnenin Yazıcı özelliğini Application.Printer nesnesine ayarlamak için aşağıdaki adımları izleyin:

  1. Örnek veritabanı Northwind.mdb açın.

  2. Ana Santral formunu göründüğünde kapatın.

  3. Visual Basic Editor'ı açmak için ALT+F11 tuşuna basın.

  4. Ekle menüsünde Modül'etıklayın.

  5. Uygulamalar için aşağıdaki Visual Basic kodunu yeni modüle ekleyin:

    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. Yukarıdaki örnek yordamı tıklatın ve ardından Çalıştırmenüsünde, Alt/UserForm Çalıştır'ıtıklatın.

  7. Dosya menüsünde Kapat ve Microsoft Access'e Dön'etıklayın.

  8. Microsoft Office Access 2003'te veya Microsoft Access 2002'de Dosya menüsünde Sayfa Kurulumu'nu tıklatın ve ardından Sayfa sekmesini tıklatın. Microsoft Office Access 2007'de, Microsoft Office Düğmesi'nitıklatın,Yazdırdüğmesini tıklatın ve ardından Yazdır Önizleme'yitıklatın. Önizlemeyazdır sekmesinde,Sayfa Düzeni grubunda Sayfa Kurulumu'nu tıklatın ve ardından Sayfasekmesini tıklatın. Raporun Kağıt BoyutununYasalolarak ayarladığını ve YönlendirmeninYatayolarak ayarladığını unutmayın.

  9. Raporu kapatın.

  10. Veritabanı penceresinde, Alfabetik Ürünler Listesi raporunu yeniden yazdırın. Yazıcı ayarlarının raporla otomatik olarak kaydedilemediğini unutmayın.

Nesnenin Yazıcı Ayarlarını Doğrudan Atama

Başka bir geçici çözüm, uygulama.printer özelliğine ayarlamak yerine nesnenin yazıcı ayarlarını programlı olarak ayarlamaktır. Nesnenin Yazıcı özelliğinin tek tek özelliklerini ayarlamak, Sayfa Kurulumu iletişim kutusundaki yazıcı ayarlarını el ile değiştiren kullanıcıya benzer. Nesnenin yazıcı ayarlarını doğrudan programlı bir şekilde ayarladığınızda, ayarlar nesneyle otomatik olarak kaydedilir. Nesnenin yazıcı ayarlarını doğrudan ayarlamak için aşağıdaki adımları izleyin:

  1. Örnek veritabanı Northwind.mdb açın.

  2. Ana Santral formunu göründüğünde kapatın.

  3. Visual Basic Editor'ı açmak için ALT+F11 tuşuna basın.

  4. Ekle menüsünde Modül'etıklayın.

  5. Uygulamalar için aşağıdaki Visual Basic kodunu yeni modüle ekleyin:

    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. Yukarıdaki örnek yordamı tıklatın ve ardından Çalıştırmenüsünde, Alt/UserForm Çalıştır'ıtıklatın.

  7. Dosya menüsünde Kapat ve Microsoft Access'e Dön'etıklayın.

  8. Dosya menüsünde Sayfa Kurulumu'nuve ardından Sayfa sekmesini tıklatın. Microsoft Office Access 2007'de, Microsoft Office Düğmesi'nitıklatın,Yazdırdüğmesini tıklatın ve ardından Yazdır Önizleme'yitıklatın. Önizlemeyazdır sekmesinde,Sayfa Düzeni grubunda Sayfa Kurulumu'nu tıklatın ve ardından Sayfasekmesini tıklatın. Raporun Kağıt BoyutununYasalolarak ayarladığını ve YönlendirmeninYatayolarak ayarladığını unutmayın.

  9. Raporu kapatın.

  10. Veritabanı penceresinde, Alfabetik Ürünler Listesi raporunu yeniden yazdırın. Yazıcı ayarlarının raporla otomatik olarak kaydedildiğini unutmayın.

Durum

Bu davranış tasarım gereğidir.

Ek Bilgi

Formlar ve raporlar, tanımlarının bir parçası olarak DEVMODE adlı bir yapıyı depolar. DEVMODE yapısı, belirli bir nesnenin yazıcı bilgilerini tanımlayan bir Microsoft Windows yapısıdır. Örneğin, kağıt boyutu, kağıt kutusu ve yönlendirme gibi öğeler bu yapının bir parçası olarak depolanır. Yeni bir form oluşturduğunuzda veya nesne raporladiğinizde, form veya rapor nesnesi, UYGULAMA.Yazıcı nesnesinden DEVMODE yapısını otomatik olarak devralır. Formu veya raporu kaydettiğinizde, otomatik olarak devralınan DEVMODE yapısı da onunla birlikte kaydedilir. Varsayılan olarak, Application.Printer nesnesinin yazıcı özellikleri Microsoft Windows'daki varsayılan yazıcıyla aynı olacaktır. Ancak, Microsoft Access varsayılan yazıcı için farklı bir özellik kümesi kullanabilmesi için bu özellikleri programlı olarak değiştirmek mümkündür. Tablolar, sorgular, görünümler ve depolanan yordamlar, yazıcı bilgilerini tanımlarının bir parçası olarak depolamaz. Bu nedenle, tabloları, sorguları, görünümleri veya depolanan yordamları yazdırdığınızda, bunlar her zaman Application.Printer nesnesinde tanımlanan geçerli ayarları kullanır.

Davranışı Çoğaltma Adımları

  1. Access 2003'te veya Access 2002'de northwind.mdb örnek veritabanını açın.

  2. Ana Santral formunu göründüğünde kapatın.

  3. Görünüm menüsünde Veritabanı Nesneleri'niişaret edin ve ardından Raporlar'ıtıklatın.

  4. Veritabanı penceresinde Kirikel Ürün Listesi raporunu tıklatın ve ardından Dosya menüsünde Sayfa Kurulumu'nutıklatın.

  5. Sayfa sekmesini tıklatın ve iletişim kutusunun Yazıcı bölümünün altında Varsayılan Yazıcı seçeneğinin seçili olduğunu doğrulayın.

  6. Sayfa Kurulumu iletişim kutusunu kapatmak için Tamam'ı tıklatın.

  7. Ekle menüsünde Modül'etıklayın.

  8. Modüle Uygulamalar için aşağıdaki Visual Basic kodunu ekleyin:

    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. Yukarıdaki örnek yordamı tıklatın ve ardından Çalıştırmenüsünde, Alt/UserForm Çalıştır'ıtıklatın.

  10. Dosya menüsünde Kapat ve Microsoft Access'e Dön'etıklayın.

  11. Görünüm menüsünde Veritabanı Nesneleri'niişaret edin ve ardından Sorgular'ıtıklatın.

  12. Alfabetik Ürün Listesi sorgusunu tıklatın ve ardından Dosya menüsünde Önizlemeyazdır'ıtıklatın.

  13. Dosya menüsünde Sayfa Kurulumu'nutıklatın.

  14. Sayfa sekmesini tıklatın. Yönlendirme seçeneğinin Yatay olarak ayarlandığında ve Kağıt Boyutu seçeneğinin beklendiği gibi Yasal olarak ayarlandığındadikkat edin.

  15. Sayfa Kurulumu iletişim kutusunu kapatmak için İptal'i tıklatın ve ardından sorguyu kapatın.

  16. Görünüm menüsünde Veritabanı Nesneleri'niişaret edin ve ardından Raporlar'ıtıklatın.

  17. Veritabanı penceresinde, Alfabetik Ürün Listesi raporunu tıklatın ve ardından Önizleme'yitıklatın.

  18. Dosya menüsünde Sayfa Kurulumu'nutıklatın.

  19. Sayfa sekmesini tıklatın. Yönlendirme seçeneğinin Dikey olarak ayarlandığına ve Kağıt Boyutu seçeneğinin Application.Printer nesnesine yapılan ayarlardan farklı olan Letterolarak ayarlandığına dikkat edin.

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×