Skip to main content

AccessTr.neT


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

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

#25
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
Cevapla
#26
" & cstr(Me.AclRMynSec ) & " şeklinde de kullanılabilir,  aslında gerekmiyor ama bazen sorun cikiyor
Cevapla
#27
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.
Cevapla
#28
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
Cevapla
#29
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
Cevapla
#30
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.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task