AccessTr.neT

Tam Versiyon: Raporu 3 Nüsha Bastırma
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Sayfalar: 1 2
Merhabalar 50 adet kayıt ıceren sorgum var her bır kayıttan 3 nusha almak ıstıyorum raporunu hazırladım ve asagıdakı kodu yazdım

Kod:
DoCmd.OpenReport "R_MAKBUZ", acViewPreview
DoCmd.PrintOut acPrintAll, , , , 3
DoCmd.Close acReport, "R_MAKBUZ"

3 nusha almasına alıyorum fakat nushaları ardışık alamıyorum yanı 1 den 50 ye kadar kaydın hepsınden once bırer tane alıyor 50 kayıt bıtınce 2. nushayı bastırmaya gecıyor

bu probelmı nasıl gecebılırım ?
Rapor tasarım görünümünde iken, sayfa düzeni-sayfa yapısı ayarlarından sayfa sekmesini aç,
Yazıcı ayarlarından "Belirli Yazıcı Kullan" onay kutusunu işaretleyip Yazıcı butonunu tıkla ve yazıcı ayarlarından "Harmanlanmamış" olarak ayarla.


[Resim: 14603932971.png]
malesef yazici ozelliklerinde boyle bir secenek mevcut degil 
5 sayfalı ve 3 kopyalı yazdırma işlemi için basılan sayfalar yazıcının harmanla özelliği mevcut ise veya Harmanlama açık ise 1,2,3,4,5 – 1,2,3,4,5 – 1,2,3,4,5 şeklinde yazdırılır.


Eğer yazıcının harmanla özelliği mevcut ise veya Harmanlama kapalıysa 1,1,1 – 2,2,2 – 3,3,3 – 4,4,4 – 5,5,5 şeklinde yazdırılır.

[Resim: 14603936191.png]


DoCmd.OpenReport "R_MAKBUZ", acViewPreview
DoCmd.PrintOut acPrintAll, , , , 3
DoCmd.Close acReport, "R_MAKBUZ"

veya


DoCmd.OpenReport "R_MAKBUZ", acViewPreview
DoCmd.PrintOut acPrintAll, , , , 3, True
DoCmd.Close acReport, "R_MAKBUZ"


kodunu kullanırsan raporu 1,2,3,4,5 – 1,2,3,4,5 – 1,2,3,4,5 şeklinde yazdırılır.
 
DoCmd.OpenReport "R_MAKBUZ", acViewPreview
DoCmd.PrintOut acPrintAll, , , , 3, False
DoCmd.Close acReport, "R_MAKBUZ"

kodunu kullanır isen yazıcının harmanla özelliği mevcut ise sayfayı 1,1,1 – 2,2,2 – 3,3,3 – 4,4,4 – 5,5,5 şeklinde yazdırır.

EĞER YAZICININ HARMANLA ÖZELLİĞİ YOK İSE

Raporda, ayrıntının "Yazıldığında" olayına aşağıdaki kodu ekle

Private Sub Ayrıntı_Print(Cancel As Integer, PrintCount As Integer)

SayfaSayisi = Me.Pages
End Sub

Yeni modül oluştur, modüle aşağıdaki kodu ekle

Option Compare Database

Option Explicit
Global SayfaSayisi As String

Public Function HarmanlamadanYazdir(KopyaSayisi, RaporAdi As String)

Dim SayfaNumarasi, SayfaYazdir As Integer

DoCmd.OpenReport RaporAdi, acViewPreview
DoCmd.Close acReport, RaporAdi

    For SayfaNumarasi = 1 To SayfaSayisi
    
        For SayfaYazdir = 1 To KopyaSayisi
            DoCmd.SelectObject acReport, RaporAdi, True
            DoCmd.PrintOut acPages, SayfaNumarasi, SayfaNumarasi
        Next SayfaYazdir
    Next SayfaNumarasi
End Function

Modülü Kaydet

Formda bulunan yazdırma butonuna da aşağıdaki kodu ekle.

Call HarmanlamadanYazdir(2, "TBL_KONUT")

Üstteki 2, yazdırma sayısıdır. Forma metin kutusu (mtn_kopyasayisi) ekleyip yazdırma sayısını belirleyeceksen kod aşağıdaki gibi olmalıdır.

Call HarmanlamadanYazdir([mtn_kopyasayisi], "TBL_KONUT")

Ayrıca, cevabı bu sitede arayanlara da fazla itibar etmeyiniz.
hocam cok tesekkur ederım... emegınız cok buyuk...
hocam dedıklerınızı yaptım hata resımlerı asagıdakı gıbıdır

[Resim: 14604509031.jpg]

debug'a tıklayıncada 

[Resim: 14604509032.jpg]

raporun ayrıntı  alanın yazılıdıgında kısmınada bu kodları yazınız

[Resim: 14604510721.jpg]
Sayfalar: 1 2