Skip to main content

AccessTr.neT


Raporun Kayıt Kaynağı Sorgusunu Formdan Kod İle Göndermek

Raporun Kayıt Kaynağı Sorgusunu Formdan Kod İle Göndermek

Çözüldü #1
kolay gelsin arkadaşlar,
eklediğim örnek dosyada form üzerinden seçtiğim parti numarasına ait reçeteyi gösteriyorum.

burada yapmayı düşündüğüm:
reçeteyi göster butonuna basınca Rapor ve Rapor_KM nin kayıt kaynağı sorgusunu kod ile göndermek.

bunu yapmaktaki amacım ise, farklı formlardan rapor oluşturmak istediğimde form adı değişikliği dolayısıyla birden çok rapor kopyası oluşturmam gerekiyor, amacım bunu teke düşürmek.

yardımlarınız için şimdiden çok teşekkür ederim,
hayırlı işler diliyorum.



[img][Resim: do.php?img=16663][/img]
.rar alt rpor oluştur.rar (Dosya Boyutu: 215,94 KB | İndirme Sayısı: 4)
husem, proud to be a member of AccessTr.neT since 08-03-2009.
Cevapla
#2
Formdan istediğiniz rapora
Kod:
Reports(raporadı).recordsource
kodu ile kayıt kaynağı atayabilir, değiştirebilir veya kaynağı görüntüleyebilirsiniz. Amacınızı tam anlamadım neden rapor almak için her form değiştiğinde veya farklı formlardan rapor alınmak istediğinizde raporu kopyalamak ihtiyacı duyulsun ki?
Cevapla
#3
ALTRAPOR OLDUĞUNDA YAPAMADIM.
O YÜZDEN KONU AÇTIM.
husem, proud to be a member of AccessTr.neT since 08-03-2009.
Cevapla
#4
Aşağıdaki mantık ile rapor ve alt rapor kaynaklarını kod ile atayabilirsiniz.

Dim MainReportName As String, SubReportName As String
Dim MainReport As Report, SubReport As Report
MainReportName= "AnaRaporAdı" ' Ana raporun adını güncelleyin.
SubReportName= "AltRaporAdı" ' Alt raporun adını güncelleyin.

Set MainReport = Reports(MainReportName)
MainReport.RecordSource = "SELECT ..........." ' Ana raporun kaynağını belirleyin
Set SubReport = MainReport.Report(SubReportName)
SubReport.RecordSource = "SELECT ............" ' Alt raporun kaynağını belirleyin
Cevapla
#5
(09/03/2024, 09:36)atoykan yazdı: Aşağıdaki mantık ile rapor ve alt rapor kaynaklarını kod ile atayabilirsiniz.

Dim MainReportName As String, SubReportName As String
Dim MainReport As Report, SubReport As Report
MainReportName= "AnaRaporAdı" ' Ana raporun adını güncelleyin.
SubReportName= "AltRaporAdı" ' Alt raporun adını güncelleyin.

Set MainReport = Reports(MainReportName)
MainReport.RecordSource = "SELECT ..........." ' Ana raporun kaynağını belirleyin
Set SubReport = MainReport.Report(SubReportName)
SubReport.RecordSource = "SELECT ............" ' Alt raporun kaynağını belirleyin

merhaba, aşağıdaki gibi hata verdi. referansları knt ettim, ama olmadı.

[img][Resim: do.php?img=16665][/img]

[Resim: do.php?img=16666]
husem, proud to be a member of AccessTr.neT since 08-03-2009.
Cevapla
#6
Microsoftun yaptığı değişikliği atladım hızla cevap vereyim derken kusura bakmayın. Bir alt raporun kayıt kaynağını runtime sürecinde ayarlayamazsınız veya değiştiremezsiniz bu nedenle kayıt kaynağını tasarım görünümünde ayarlamanız gerekecektir. Buna çözüm olarak şöyle bir yaklaşım ortaya koyabiliriz

Private Sub Komut25_Click()
RedefRptSQL "rpt_Rapor", "SELECT BOYAMA_RECETE_VERITABANI.* FROM BOYAMA_RECETE_VERITABANI WHERE (((BOYAMA_RECETE_VERITABANI.PARTI_NO)=Formlar!recete_bul!pno));"
RedefRptSQL "rpt_Rapor_KM", "SELECT BOYAMA_RECETE_VERITABANI.* FROM BOYAMA_RECETE_VERITABANI WHERE (((BOYAMA_RECETE_VERITABANI.PARTI_NO)=Formlar!recete_bul!pno));"
DoCmd.OpenReport "rpt_Rapor", acViewPreview
End Sub

Function RedefRptSQL(strRptName As String, strSQL As String)
On Error GoTo Error_Handler
Dim Rpt As Report

DoCmd.OpenReport strRptName, acViewDesign, , , acHidden

Set Rpt = Application.Reports(strRptName)
Rpt.RecordSource = strSQL
DoCmd.Close acReport, strRptName, acSaveYes

Error_Handler_Exit:
On Error Resume Next
Set Rpt = Nothing
Exit Function

Error_Handler:
MsgBox "Karşılaşılan hata:" & vbCrLf & vbCrLf & _
" Error Number: " & Err.Number & vbCrLf & _
" Error Source: RedefRptSQL" & vbCrLf & _
" Error Description: " & Err.Description, _
vbCritical, "BİR HATA OLUŞTU!"
Resume Error_Handler_Exit
End Function
Burada tanımlanan Function raporlarınızı gizli modda tasarım modunda açıp kayıt kaynağını güncelledikten sonra raporu açmanızı sağlar.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task