Rapor Kayıt Kaynağı Değiştirme Vba

1 2 3 4 5 6
06/06/2020, 16:14

mgunes

Merhaba,
for döngüsünde
Kod:
Dim x As Integer
For x = 1 To 3
DoCmd.OpenReport "RAPRADMYNSYF" & x, acViewDesign
Reports!["RAPRADMYNSYF" & x].RecordSource = SRGRD20
DoCmd.Close acReport, "RAPRADMYNSYF" & x, acSaveYes
Next x
reports! dan sonraki kısmı nasıl düzenlemeliyim? Burada hata  veriyor. Tüm raporların kayıt kaynağı aynı sorgu ifadesi.
06/06/2020, 16:17

berduş

SRGRD20 eğer bu sorgu ismiyse çift tırnak içine almalısınız
"SRGRD20" gibi..
06/06/2020, 16:32

mgunes

Çift tırnağı denedim sonuç aynı. Run Time error: 2451 Deyimde girdiğiniz rapor adı ' "RAPRADMYNSYF" & X '  , yanlış yazılmış veya açılmamış veya varolmayan bir rapora başvuruyor. RAPRADMYNSYF1' i tasarım modunda açıyor (radyasyon muayenesi rapor şablonu)  ve hata iletisi çıkıyor.
06/06/2020, 19:19

berduş

kodu aşağıdaki gibi dener misiniz?
ben bendeki dosyalara göre isimlendirdim o nedenle sorgu ve rapor isimleri değişmeli
Dim x As Integer
For x = 1 To 3
DoCmd.OpenReport "RANAMNEZSYF" & x, acViewDesign
Reports("RANAMNEZSYF" & x).RecordSource = "SRGANAMNEZ2"
DoCmd.Close acReport, "RANAMNEZSYF" & x, acSaveYes
Next x
06/06/2020, 21:18

mgunes

Tamamdır çalıştı. Teşekkür ederim.
06/06/2020, 23:08

mgunes

If Me.AclRMynSec = "2020" Then
DoCmd.OpenForm "FRADYASYONMYN", acDesign
Forms!FRADYASYONMYN.RecordSource = "SELECT TACALISANKAYDI.*, TRADYASYON2020.* FROM TACALISANKAYDI LEFT JOIN TRADYASYON2020 ON TACALISANKAYDI.KIMNO = TRADYASYON2020.KIMNO;"
DoCmd.Close acForm, "FRADYASYONMYN", acSaveYes
DoCmd.OpenForm "FRADYASYONMYN", , , "TACALISANKAYDI.KIMNO=" & Me.LstKayitSorg
DoCmd.Close acForm, Me.Name
'******
Dim x As Integer
For x = 1 To 3
DoCmd.OpenReport "RAPRADMYNSYF" & x, acViewDesign
Reports("RAPRADMYNSYF" & x).RecordSource = "SRGRD20"
DoCmd.Close acReport, "RAPRADMYNSYF" & x, acSaveYes
Next x

ElseIf Me.AclRMynSec = "2019" Then

DoCmd.OpenForm "FRADYASYONMYN", acDesign
Forms!FRADYASYONMYN.RecordSource = "SELECT TACALISANKAYDI.*, TRADYASYON2019.* FROM TACALISANKAYDI LEFT JOIN TRADYASYON2019 ON TACALISANKAYDI.KIMNO = TRADYASYON2019.KIMNO;"
DoCmd.Close acForm, "FRADYASYONMYN", acSaveYes
DoCmd.OpenForm "FRADYASYONMYN", , , "TACALISANKAYDI.KIMNO=" & Me.LstKayitSorg
DoCmd.Close acForm, Me.Name

For x = 1 To 3
DoCmd.OpenReport "RAPRADMYNSYF" & x, acViewDesign
Reports("RAPRADMYNSYF" & x).RecordSource = "SRGRD19"
DoCmd.Close acReport, "RAPRADMYNSYF" & x, acSaveYes
Next x

End If
Bu kodları bir fonksiyon ile kısaltmanın yolu var mı? 2019 ve 2020 için form ve rapor kayıt kaynağını belirlediğim ifadeler, çalışıyor. Geriye dönük diğer yılları da alacak şekilde genişleteceğim. 
İyi çalışmalar.
1 2 3 4 5 6