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

1 2 3 4 5 6
07/06/2020, 00:33

berduş

Kod:
Forms!FRADYASYONMYN.RecordSource = "SELECT TACALISANKAYDI.*, TRADYASYON" & Me.AclRMynSec  & ".* FROM TACALISANKAYDI LEFT JOIN TRADYASYON" & Me.AclRMynSec  & " ON TACALISANKAYDI.KIMNO = TRADYASYON" & Me.AclRMynSec  & ".KIMNO;"
şeklinde dener misiniz?
Gerekiyorsa cstr( Me.AclRMynSec ) şeklinde yazabilirsiniz yada tablo ve alan isimlerini köşeli parantez [] içine de alabilirsiniz.

Yanlış kopyalama/yazma ihtimaline karşılık şunu belirteyim yıl yazan yeri silip yerine aşağıdaki kodu yapistiracaksniz
" & Me.AclRMynSec  & "

Tırnak işaretleri de olacak
07/06/2020, 00:39

berduş

" & cstr(Me.AclRMynSec ) & " şeklinde de kullanılabilir,  aslında gerekmiyor ama bazen sorun cikiyor
07/06/2020, 00:55

mgunes

Bu haliyle formdaki kısım çalıştı, aynı tıklanma olayında eşzamanlı raporu nasıl ayarlamalıyım? Bu arada 21. yorumunuzda sorgu ve rapor adı demiştiniz ya. Ben formu ve raporu birlikte etkin hale getirmek istedim. Diğer durumda ayrı sorgu oluşturup onu işaret edecektim, onun yerine form için Sql kodunu yazdım. Çünkü raporda formdan farklı olarak 
Kod:
WHERE (((TACALISANKAYDI.KIMNO)=[Formlar]![FRADYASYONMYN]![mtn_KimNo]));
ifadesi ekleniyor. O yüzden raporun kayıt kaynağını ayrı sorgular oluşturup gösterdim. Aslında yeni farkettim orda da değişen yalnız yıl ifadesi.
07/06/2020, 01:10

berduş

Eğer 2 sorgu arasındaki tek fark WHERE ise
 dim SqlStr, SqlStrRpr as string
SqlStr = "SELECT TACALISANKAYDI.*, TRADYASYON" & Me.AclRMynSec  & ".* FROM TACALISANKAYDI LEFT JOIN TRADYASYON" & Me.AclRMynSec  & " ON TACALISANKAYDI.KIMNO = TRADYASYON" & Me.AclRMynSec  & ".KIMNO"
Forms!FRADYASYONMYN.RecordSource=SqlStr
SqlStrRpr=SqlStr & " WHERE (((TACALISANKAYDI.KIMNO)=[Formlar]![FRADYASYONMYN]![mtn_KimNo]))"
' diğer kodlar
Reports("RAPRADMYNSYF" & x).RecordSource = SqlStrRpr
' diğer kodlar
şeklinde yazilabilir
07/06/2020, 01:25

mgunes

Harikasınız, çalıştı.
Dim SqlStr, SqlStrRpr As String
' formun kayıt kaynağının ayarlanması
DoCmd.OpenForm "FRADYASYONMYN", acDesign
SqlStr = "SELECT TACALISANKAYDI.*, TRADYASYON" & Me.AclRMynSec & ".* FROM TACALISANKAYDI LEFT JOIN TRADYASYON" & Me.AclRMynSec & " ON TACALISANKAYDI.KIMNO = TRADYASYON" & Me.AclRMynSec & ".KIMNO"
Forms!FRADYASYONMYN.RecordSource = SqlStr
SqlStrRpr = SqlStr & " WHERE (((TACALISANKAYDI.KIMNO)=[Formlar]![FRADYASYONMYN]![mtn_KimNo]))"
DoCmd.Close acForm, "FRADYASYONMYN", acSaveYes
DoCmd.OpenForm "FRADYASYONMYN", , , "TACALISANKAYDI.KIMNO=" & Me.LstKayitSorg
DoCmd.Close acForm, Me.Name
' rapor kayıt kaynağı ayarlama kod bloğu
For x = 1 To 3
DoCmd.OpenReport "RAPRADMYNSYF" & x, acViewDesign
Reports("RAPRADMYNSYF" & x).RecordSource = SqlStrRpr
DoCmd.Close acReport, "RAPRADMYNSYF" & x, acSaveYes
Next x
07/06/2020, 01:26

berduş

Konu nihayete erdi mi)

Birşey sorayim neden her defasında kaydedip kapatıyorsunuz? Form için zaten acik kaldığı müddetçe bu sorguyu kullanır, rapor ise yazıcıya gönderilip kaydedilmeden kapatılabilir?

Form ve raporu tasarim modunda acmak yerine dogrudan acilip, yaziciya gonderilip kapatilabilr.
1 2 3 4 5 6