AccessTr.neT
Rapor Kayıt Kaynağı Değiştirme Vba - Baskı Önizleme

+- AccessTr.neT (https://accesstr.net)
+-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html)
+--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html)
+--- Konu Başlığı: Rapor Kayıt Kaynağı Değiştirme Vba (/konu-rapor-kayit-kaynagi-degistirme-vba.html)

Sayfalar: 1 2 3 4 5 6


RE: Rapor Kayıt Kaynağı Değiştirme Vba - berduş - 07/06/2020

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


RE: Rapor Kayıt Kaynağı Değiştirme Vba - berduş - 07/06/2020

" & cstr(Me.AclRMynSec ) & " şeklinde de kullanılabilir,  aslında gerekmiyor ama bazen sorun cikiyor


RE: Rapor Kayıt Kaynağı Değiştirme Vba - mgunes - 07/06/2020

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.


RE: Rapor Kayıt Kaynağı Değiştirme Vba - berduş - 07/06/2020

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


RE: Rapor Kayıt Kaynağı Değiştirme Vba - mgunes - 07/06/2020

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



RE: Rapor Kayıt Kaynağı Değiştirme Vba - berduş - 07/06/2020

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.