acces raporda yatay sorunu

Katılım
18 Mayıs 2005
Mesajlar
63
Değerli form yöneticileri ve üyeleri,
Benim sorunum şu. Diyelimki üyeler adlı bir tablom var. Yine buna bağlı olarak oluşturulmuş üyelerr diye bir raporum var. A4 kağıdına dikey (21cm*29,7 cm) sığmadığı için raporun sayfa yapısını yatay olarak ayarlıyorum. Kaydediyorum. İlk zamanlar bir sorun yok. Bir müddet sonra veya programı bir bilgisayardan diğerine kopyalayınca Formdan makro ile bu raporu önizleme yaptığımda tekrar dikeye dönüyor. Bu sorunumu nasıl giderebilirim. Yada Rapor önizle veya yazdır komutundan önce kodlarla sayfa yapısını yatay nasıl yapabilirim. Şimdiden teşekkür ederim.
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
yazıcı ayarlaraıı

Access 2002'de Bir Raporun Yazıcı Ayarlarını Değiştirme
Veritabanındaki her rapor için sayfa ayarı seçeneklerini ayarlayabilirsiniz ancak ayarlar her veritabanı kullanıcısı için ayrı ayrı saklanmaz. Başka bir deyişle, Fatura raporunun yazdırma ayarlarında değişiklik yaparsanız, değişiklikleriniz bir önceki kullanıcının yaptığı değişikliklerin üstüne yazılacaktır.

Kod yazarak, kullanıcıların çalışma anında raporun varsayılan yazıcı veya sayfa ayarı seçeneklerini değiştirmeden özel ayarlar belirlemelerini sağlayabilirsiniz. Ayrıca kullanıcılara istedikleri ayarları belirleyebilecekleri bir iletişim kutusu veya form sunmanız da gerekebilir.

Aşağıda, kullanıcıya yazdırma ayarlarını özelleştirme, bir raporu önizleme veya yazdırma olanağı veren Yazıcı Ayarları formunu göreceksiniz.



Önizlemek veya yazdırmak istediğiniz raporu seçin.

Seçilen rapor için kullanmak istediğiniz yazıcıyı seçin.

Kağıt boyutunu ve yönünü belirleyin.

Raporu önizlemek için tıklatın.

Son yazdırma ayarlarını, Önizleme penceresinde zaten açık olan bir rapora uygulamak için tıklatın.

Raporu yazdırmak için tıklatın.

Yazıcı Ayarları formu oluşturma
Tasarım görünümünde bir form oluşturun ve aşağıdaki denetimleri yukarıdaki şekilde gösterilen biçimde ekleyin.
lbxSelectReport: rapor listesini görüntülemek için liste kutusu
cmbPrinter: kullanılabilir yazıcıların listesini görüntülemek için açılan kutu
cmbPaperSize: kağıt boyutları listesini görüntülemek için açılan kutu
opgOrientation: yönlendirme seçeneklerini görüntüleyen, iki seçenekten oluşan seçenek grubu
cmdPreview: raporu önizleme modunda açan komut düğmesi
cmdApplyChanges: son ayarları geçerli rapora uygulamak için komut düğmesi
cmdPrint: formda belirtilen ayarları kullanarak seçilen raporu yazdırmak için komut düğmesi
Denetimleri başlatmak için formun Aç olayına kodu ekleyin.
Örnek Aç olayı alt yordamı

Private Sub Form_Open(Cancel As Integer)

' Varsayılan yazıcı dizinini saklayan değişken.
Dim strDefaultPrinter As String

' Yazıcı nesnesini saklayan değişken.
Dim prt As Printer

' AllReports derlemesi içinde gezinirken rapor nesnesini
' saklayan değişken.
Dim accObj As AccessObject

' Yazıcı listesini doldur.
' RowSource değerinin boş olduğundan emin ol.
Me!cmbPrinter.RowSource = ""
Me!lbxSelectReport.RowSource = ""

' Bilgisayarda yüklü yazıcılar arsında sırayla geçiş yap ve bunları birleşik kutuya ekle.
For Each prt In Application.Printers
' Yazıcı adını birleşik kutuya eklemek için yeni AddItem yöntemini kullan.
Me!cmbPrinter.AddItem prt.DeviceName
Next

' Varsayılan yazıcıyı anımsa.
strDefaultPrinter = Application.Printer.DeviceName

' Birleşik kutuyu varsayılan yazıcıya ayarla.
Me!cmbPrinter = strDefaultPrinter
Me!cmbPaperSize = 1

' Rapor listesini doldur.
For Each accObj In CurrentProject.AllReports
Me!lbxSelectReport.AddItem accObj.Name
Next

' Liste kutusunu ilk rapora ayarla.
Me!lbxSelectReport.SetFocus
Me!lbxSelectReport.ListIndex = 0

End Sub
Seçilen raporu önizleme modunda açmak için, Rapor Önizleme komut düğmesine kodu ekleyin.
Rapor Önizleme komut düğmesi örnek Tıklatıldığında olay yordamı

Private Sub cmdPreview_Click()
' İşlenecek yazıcı nesnesini saklayan değişken.
Dim prt As Printer

' Seçili yazıcı için yazıcı nesnesini al.
Set prt = Application.Printers(Me!cmbPrinter.Value)

' Kullanıcı tanımlı ayarları oku.
prt.PaperSize = Me!cmbPaperSize
prt.Orientation = Me!opgOrientation

' Raporu önizleme modunda aç.
DoCmd.OpenReport Me!lbxSelectReport, acViewPreview

' Raporun yazıcısını değiştirilmiş yazıcı nesnesine ayarla.
Reports(Me!lbxSelectReport).Printer = prt

End Sub
Önizleme modunda zaten açık olan rapora değişiklikleri uygulamak için, Değişiklikleri Uygula komut düğmesine kodu ekleyin.
Değişiklikleri Uygula komut düğmesi örnek Tıklatıldığında olay yordamı

Private Sub cmdApplyChanges_Click()

If CurrentProject.AllReports(Me!lbxSelectReport).IsLoaded Then
With Reports(Me!lbxSelectReport).Printer
.PaperSize = Me!cmbPaperSize
.Orientation = Me!opgOrientation
End With
Else
MsgBox "Please preview the report first."
End If

End Sub
Seçilen raporu, kullanıcı tarafından belirlenen ayarlara göre yazdırmak için Raporu Yazdır komut düğmesine kodu ekleyin.
Raporu Yazdır komut düğmesi örnek Tıklatıldığında olay yordamı

Private Sub cmdPrint_Click()

' Raporun açık olup olmadığını denetle.
If CurrentProject.AllReports(Me!lbxSelectReport).IsLoaded Then
' Rapor zaten açıksa yazdır.
DoCmd.OpenReport Me!lbxSelectReport, acViewNormal
Else
' Uygulama yazıcısı için özel ayarlar belirle.
Application.Printer = Application.Printers(Me!cmbPrinter.Value)
Application.Printer.PaperSize = Me!cmbPaperSize
Application.Printer.Orientation = Me!opgOrientation

' Raporu, yeni uygulama düzeyi yazıcı ayarlarını kullanarak aç ve yazdır.
DoCmd.OpenReport Me!lbxSelectReport, acViewNormal

' Uygulama yazıcısını varsayılan olarak sıfırla.
Set Application.Printer = Nothing
End If

End Sub


buda başka bir kod
bir düğmeye ekleyin

DoCmd.OpenForm FormName:=strFormname, view:=acDesign, _
datamode:=acFormEdit, windowmode:=acHidden

With Forms(form1).Printer

.TopMargin = 1440
.BottomMargin = 1440
.LeftMargin = 1440
.RightMargin = 1440

.ColumnSpacing = 360
.RowSpacing = 360

.ColorMode = acPRCMColor
.DataOnly = False
.DefaultSize = False
.ItemSizeHeight = 2880
.ItemSizeWidth = 2880
.ItemLayout = acPRVerticalColumnLayout
.ItemsAcross = 6

.Copies = 1
.Orientation = acPRORLandscape
.Duplex = acPRDPVertical
.PaperBin = acPRBNAuto
.PaperSize = acPRPSLetter
.PrintQuality = acPRPQMedium

End With

DoCmd.Close objecttype:=acForm, objectname:=strFormname, _
Save:=acSaveYes


bunların hepsi access kod deposunda var
 
Katılım
18 Mayıs 2005
Mesajlar
63
hızlı cevabınız için teşekkürler. Deneyeceğim.
 
Üst