Sayın Ozan hocam.
6.msj.bahsettiğim konuyla ilgili eklediğim örnekte,yeni bir çalışma mantığı geliştirdim,
Şöyleki;günsonu_gelir ve günsonu_giderler ile ilgili rapor oluşturdum ve raporlara tarih ve saat alanları ekledim,günsonu almak istediğimizde masabilgileri formunda bulunan butona tıklanmak suretiyle rapor formunu açıyoruz ve gerekli raporları alabililiyoruz.
Bu durumda kapanış tarihi ve saatine göre ya günsonu raporu almayı zorunlu hale getireceğiz ki en doğrusuda bu veya günsonu alımadığı takdirde
bir sonraki günsonu raporu alındığında alımayan günsonu raporlarınıda almayı sağlayacağız.
Saygılarımla.
Sayın fascioglu,
Sorularınıza çözüm ararken yazdıklarınızı okuyarak çözüm bulmaya çalışıyoruz.
"frm_masabılgılerı formunda kapanis_tarihi alanı ve günsonu raporu butonu koydum."
demişsiniz, ancak frm_masabılgılerı formunda kapanis_tarihi diye bir alan yok.
"Kasa formunun, kapanış_tarihini..." demişsiniz kasa formu hangisi???
Sayın Ozan hocam,
7.msj.ımda günsonu raporlarını almak için frm_gelir_gider_rapor diye bir form oluşturdum,sadece masabilgileri formunda günsonu rapor diyede bir buton koydum.Butona tıklandığında açılan frm_gelir_gider_rapor formunda ise Tarih ve saat yazılı,burada gün sonu raporlarını alabiliyoruz.Burada tek sorun günsonu tarih ve saati girildiğinde günlük kasa formundaki verileri sıfırlamak.
Saygılarımla.
Formdaki yazdır butonunun tıklandığında olayındaki kodları aşağıdaki ile değiştiriniz.
Dim Varmi, OncekiTarih, RaporAdi As String
RaporAdi = Me.RaporCins
If RaporAdi = "Rpr_gunsonu_gelir" Then
Varmi = Nz(DLookup("[ID]", "tbl_masabılgılerıaktar", "[Giristarihi]< " & Format([Tarih], "yyyymmdd")), 0)
OncekiTarih = Dlookup ("[Giristarihi]", "tbl_masabılgılerıaktar", "[ID]= " & Varmi)
If OncekiTarih < Me.Tarih Then
MsgBox (OncekiTarih & " tarihinin raporu alınmamış")
Me.Tarih = OncekiTarih
Exit Sub
Else
If MsgBox("rapor yazdırılsın mı?", vbInformation + vbYesNo) = vbYes Then
DoCmd.OpenReport RaporAdi, acNormal
DoCmd.RunSQL "DELETE Giristarihi FROM tbl_masabılgılerıaktar WHERE (((Giristarihi)=[Formlar]![frm_gelir_gider_Rapor]![Tarih]));"
End If
End If
ElseIf RaporAdi = "Rpr_gunsonu_gıder" Then
DoCmd.OpenReport RaporAdi, acNormal
End If
Ayrıca,
Form, rapor, tablo adları ile tablo, form ve raporlardaki alan adları Türkçe Karakter içermemelidir.
Sayın Ozan Hocam,
Cevabınız için çok teşekkür ederim emeğinize sağlık.
1-Raporu yazdırdığımda ekte resimdeki gibi bir uyarı alıyorum,normalmi değilmi bilemedim.
2-Rapor yazdırılsınmı dendiğinde evet diyorum fakat Kasa formunu hemen boşaltmıyor,programı açı kapattığımda boşalıtıyır,Requery özelliğinden olabilirmi ?
Bunlar dışında bir sıkıntı yok,normal bir durum ise konuyu kapatabilirsiniz.
Saygılarımla.
sayın fascioglu,
bahsettiğiniz taleplerinize yönelik olarak,
1)
SQL sorgu ifadesini çalıştırırken,ekran görselinde olduğu gibi bir uyarı mesajı vermeksizin direkt olarak işlemi gerçekleştirmesini sağlamak için
Sql sorgu kod satırının bir üst ve alt satırlarına
Kod:
DoCmd.SetWarnings False
DoCmd.RunSQL "SQL sorgu komut ifadesi..."
DoCmd.SetWarnings True
örnekteki gibi bu mesajları kapatıp sonrasında tekrar aktifleştirmeye dair kodları dahil etmeniz yeterlidir.
2)
Kasa formu ile ilgili işlemi ancak Güncelleştirme yaptıktan sonra gerçekleştiriyorsa,.REQUERY komutunu yazmanız gerekmektedir.
Raporun yazdırılması seçiminde EVET dediğinizde uygulanması istenen işlemlerin bitiminde bu kodu dahil etmeniz uygun olacaktır kanısındayım.uygulamanızı incelemedim fakat bu işlem akabinde olması gerekmektedir demek istedim.
bilginize...iyi çalışmalar,saygılar.