AccessTr.neT

Tam Versiyon: Formdaki Bir Alana Göre Rapor Yazdırma
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
Merhaba Saygıdeğer Acess Hocalarım,

Örnek çalışmamdaki formda, "paketsayısı" alanını baz rapor yazdırmak istiyorum.

Formda seçili kayıtları istenen sayıda rapor1 e göre mevcut yazdır butonu ile yazdırabliyorum ancak; paket sayısına göre rapor yazdıramıyorum. Bunun için Formda seçili kayıtları istenen sayıda yazdırma özelliği bozulmadan, bir adet yazdır butonu ile Paket sayısı 1 olarak girilmişse Rapor1'i, Paket sayısı 2 olarak girilmişse Rapor 1 ve 2'yi, Paket sayısını 3 olarak girilmişse de Rapor1, Rapor2, ve Rapor3 'ü yazdır butonuna tıkladığımda yazdırmasını istiyorum.

Bu konuda yardımcı olacak hocalarıma şimdiden teşekkür ederim...
(06/08/2013, 13:02)F.Ç yazdı: [ -> ]Formda seçili kayıtları istenen sayıda yazdırma özelliği bozulmadan, bir adet yazdır butonu ile Paket sayısı 1 olarak girilmişse Rapor1'i, Paket sayısı 2 olarak girilmişse Rapor 1 ve 2'yi, Paket sayısını 3 olarak girilmişse de Rapor1, Rapor2, ve Rapor3 'ü yazdır butonuna tıkladığımda yazdırmasını istiyorum.

Bunun için mevcut yazdırdığın butonun click kodlarında küçün bir değişiklik yapılması yeterli.

Örneğin mevcut kod bölümü:
Do While Not rs.EOF
For x = 1 To rs("ÇıktıSayısı")
DoCmd.OpenReport "rapor1", acViewNormal, , "[ÜRÜNSIRANO]=" & rs(0)
Next x
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
aşağıdaki gibi değştirip deneyin.
Do While Not rs.EOF
For x = 1 To rs("ÇıktıSayısı")
DoCmd.OpenReport "rapor1", acViewNormal, , "[ÜRÜNSIRANO]=" & rs(0)
If Me.PaketSayisi = 2 Then
DoCmd.OpenReport "rapor2", acViewNormal, , "[ÜRÜNSIRANO]=" & rs(0)
ElseIf Me.PaketSayisi = 3 Then
DoCmd.OpenReport "rapor2", acViewNormal, , "[ÜRÜNSIRANO]=" & rs(0)
DoCmd.OpenReport "rapor3", acViewNormal, , "[ÜRÜNSIRANO]=" & rs(0)
End If
Next x
rs.MoveNext
Loop
rs.Close
Set rs = Nothing
Sayın F.Ç.
Soru sorulalı 7 gün olmuş, cevap aynı gün 5 saat sonra yazılmış ama siz hala dönüş yapmamışsınız. Lütfen sonucu bildirir misiniz?
Hocam kusuruma bakmayın,

Bayram nedeniyle şehir dışına çıkmak zorunda kaldığım için İnternet erişim imkanım olmamıştı bir türlü. mobil telefonumda da internet özelliği yoktu. bu nedenle yazamadım.

Örneği inceledim. ama istediğim şeyi vermiyor.
örneğin çıktı sayısı 3; paket sayısı 1 ise 3 tane "rapor 1" yazdırsın. örneğin çıktı sayısı 6; paket sayısı 2 ise 6 şar tane "rapor 1" ve "rapor 2" yazdırsın. . örneğin çıktı sayısı 5; paket sayısı 3 ise 5 er tane "rapor 1, rapor 2, rapor 3" yazdırsın. istiyorum. umaraım anlatabilmişimdir.

Saygılarımla...
(13/08/2013, 18:04)F.Ç yazdı: [ -> ]Örneği inceledim. ama istediğim şeyi vermiyor.
örneğin çıktı sayısı 3; paket sayısı 1 ise 3 tane "rapor 1" yazdırsın. örneğin çıktı sayısı 6; paket sayısı 2 ise 6 şar tane "rapor 1" ve "rapor 2" yazdırsın. . örneğin çıktı sayısı 5; paket sayısı 3 ise 5 er tane "rapor 1, rapor 2, rapor 3" yazdırsın. istiyorum. umaraım anlatabilmişimdir.

Üstte verdiğim kodları gördüğüm kadarıyla tam da sizin tarif ettiğminiz şekilde tasarlanmış. Çıktı sayısı For döngüysüne sokulmuş ve bu döngü çıktı sayısı kadar dönüyor.
Burada olmayan nedir?
Maytaş Hocam,

Sizin kodu aynen yapıştırdığımda da, ilk kayıttan başka seçmezsem tamam sorun yok. ama çıktı sayısını birden çok seçersem paket sayısının çarpımlarına göre ve hep rapor1 yazdırıyor. çıktı sayısını baz almıyor.
acaba kod kısmını yanlış yere mi yapıştırıyorum. Do while .... başlayan .....Nothing ile biten kısma yapıştırıyorum. sonuna da End Sub koyuyorum.

projemin son adımı hocam burada takıldım. sizin bu sorunu çözebileceğinize inancım tam.