Kutukdefterine Yıılar alttablosu ona da harçlıklar alt tablosunu bağlamaya çalıştım.
Harçlıklarbordrosu formunda bilgileri girdikten sonra buton yardımı ile bu verilerin alttablolara aktarılmasını istedim. Ayrıca filtrelemede aktif öğrenciler vardı buna yatılılık durumu "PARASIZ" filtresini eklmeyi beceremedim. Sorun şuki;
Harçlık bordrosunda yeni ay adını değiştirdiğimde verilerin bir kısmının üstüne yazıyor. bir kısmını hiç değiştirmiyor ve bütün aktif öğrencilere veri girişi yapıyor. İstenen : Aktif olan parasız öğrenciler veri girşi yapılması. Harçlık tablosuna yeni ay satırı ekleyerek verileri işlemesi. Eğer Yıl ve ay aynı ise önceki verileri güncellemesi.
Ayrıca altformda bağlı bulunduğu kütük defterinden adı soy adı geliyor adı soyadının harçlık tablosuna nasıl çekebilirim.
İlginize şimdiden teşekkür ederim.
Alt Tablolarda İşlemler
butondaki komutları olay sekmesinden inceldeiğimde ilk satırdaki komutda aktif filtresi var. Aktif filtreside sadece "Sorgu1" de var. ben oraya kütükdefterinde PARASIZ filtrelemesini eklemeye çalıştım. ama beceremdeim. PARASIZ filtresinide eklemek istiyorum.
ikinci satırdaki komut yanlış analamdıysam yıl seçme komutu.
üçüncü sıradaki komut seçilen yıla alt tablo oluşturuyor. yine yanlış analamdyısam. (alttabloya veri girişi sanırım "srAktifharçlık" sorgusunda )
dördüncü sıradaki komut silme işlemi yapıyor. Ama onu hiç anlamadım. (bordroda ay değiştirdiğimde önceki ayın bazı verilerinin üstüne yazıyor. son komutu iptal edersem. yeni satır ekliyor. Ama ben orasının şarta bağlı olmasını istiyorum. Seçilen yıla ait ay adı aynı ise üzerine yazsın yada önceki verileri silip yeniden yazsın. seçilen yıla ait ay farklı bir ay ise silmeden yeni ay satırı oluşturup verileri eklesin.
Ayrıca "srAktifharçlık" sorgusuna adoyad ve tckimlik sütunları eklersem ilerleyen aşamalrda harçlıklar tablosundan form oluşturup öğrencini form üzerinde alacak verecek durumunu daha rahat görebilirim.
ikinci satırdaki komut yanlış analamdıysam yıl seçme komutu.
üçüncü sıradaki komut seçilen yıla alt tablo oluşturuyor. yine yanlış analamdyısam. (alttabloya veri girişi sanırım "srAktifharçlık" sorgusunda )
dördüncü sıradaki komut silme işlemi yapıyor. Ama onu hiç anlamadım. (bordroda ay değiştirdiğimde önceki ayın bazı verilerinin üstüne yazıyor. son komutu iptal edersem. yeni satır ekliyor. Ama ben orasının şarta bağlı olmasını istiyorum. Seçilen yıla ait ay adı aynı ise üzerine yazsın yada önceki verileri silip yeniden yazsın. seçilen yıla ait ay farklı bir ay ise silmeden yeni ay satırı oluşturup verileri eklesin.
Ayrıca "srAktifharçlık" sorgusuna adoyad ve tckimlik sütunları eklersem ilerleyen aşamalrda harçlıklar tablosundan form oluşturup öğrencini form üzerinde alacak verecek durumunu daha rahat görebilirim.
butondaki ilk insert sorgusunda, kütük defterinde yıl alanı yok ama siz oraya yıl eklemeye çalışmışsınız
Öncelikle Yapılmaması Gereken Ölümcül Hatalar Konusunu mutlaka incele. Ayrıca, proje isimlerine yerleşik işlev veya fonksiyon isimleri verilmez. Projenize Dlookup ismi verirseniz Dlookup kodu çalıştıramazsınız.
Butonun tıklandığında olayındaki kodların tamamını aşağıdaki ile değiştirerek deneyiniz.
Butonun tıklandığında olayındaki kodların tamamını aşağıdaki ile değiştirerek deneyiniz.
Dim strSQL1 As String
Dim rsSQL1 As ADODB.Recordset
Dim Varmi, YilDegeri As Integer
If IsNull(Me.akYıl) Then
MsgBox "Yıl Seçimi Yapınız"
Exit Sub
ElseIf IsNull(Me.akAy) Then
MsgBox "Ay Seçimi Yapınız"
Exit Sub
End If
strSQL1 = "SELECT * FROM Kutukdefteri WHERE (((Durumu)='Aktif') AND ((Yatılılıkdurumu)='Parasız'));"
Set rsSQL1 = New ADODB.Recordset
rsSQL1.Open strSQL1, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
DoCmd.SetWarnings False
Do While Not rsSQL1.EOF
Varmi = Nz(dlookup("YılID", "tblYıllar", "[SıraID] = " & rsSQL1.Fields("SıraID") & " And [Yıl] = '" & Me.akYıl & "'"), 0)
If Varmi = 0 Then
DoCmd.RunSQL "INSERT INTO tblYıllar (SıraID, Yıl) VALUES (" & rsSQL1.Fields("SıraID") & ", '" & Me.akYıl & "')"
End If
YilDegeri = Nz(dlookup("YılID", "tblYıllar", "[SıraID] = " & rsSQL1.Fields("SıraID") & " And [Yıl] = '" & Me.akYıl & "'"), 0)
If YilDegeri > 0 Then
Varmi = Nz(dlookup("HarçlıkID", "tblHarçlıklar", "[SıraID] = " & rsSQL1.Fields("SıraID") & " And [YılID] = " & YilDegeri & " And [Ay] = '" & Me.akAy & "'"), 0)
If Varmi = 0 Then
DoCmd.RunSQL "INSERT INTO tblHarçlıklar (SıraID,YılID, Ay, Ekgösterge, Katsayı, Yuvarlama, Ödenen, 1Ödeme, 2Ödeme, 3Ödeme, 4Ödeme, 1Borç, 2Borç, 3Borç, 4Borç) VALUES (" & rsSQL1.Fields("SıraID") & ", '" & YilDegeri & "','" & Me.akAy & "','" & Me.akEk & "', '" & Me.akKat & "', '" & Me.Yuvarlama & "', '" & Me.Ödenen & "', '" & Me.Ödeme1 & "', '" & Me.Ödeme2 & "', '" & Me.Ödeme3 & "', '" & Me.Ödeme4 & "','" & Me.Borc1 & "','" & Me.Borc2 & "','" & Me.Borc3 & "','" & Me.Borc4 & "')"
End If
End If
rsSQL1.MoveNext
Loop
DoCmd.SetWarnings True
rsSQL1.Close
Set rsSQL1 = Nothing
Me.afAktifharçlık.Requery
İlginiz için teşekkür ederim. İŞ yoğunluğundan dolayı biraz ara verdim. Yoğunluk geçince öğrenmeye devam edeceğim. Yazdıklarınızı harfiyen uygulayıp manztığını çözmeye çalışacağım.
Konuyu Okuyanlar: 3 Ziyaretçi