Alt Tablolarda İşlemler

1 2 3 4 5 6 7 8
10/10/2020, 14:54

fenerli6774

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.
11/10/2020, 13:45

berduş

(10/10/2020, 14:54)fenerli6774 yazdı: Ayrıca filtrelemede aktif öğrenciler vardı buna  yatılılık durumu "PARASIZ" filtresini eklmeyi beceremedim
hangi filtrelemede? srgaktifharclıkta çalışıyor?
11/10/2020, 14:24

fenerli6774

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.
11/10/2020, 16:17

berduş

butondaki ilk insert sorgusunda, kütük defterinde yıl alanı yok ama siz oraya yıl eklemeye çalışmışsınız
11/10/2020, 18:08

ozanakkaya

Öncelikle Yapılmaması Gereken Ölümcül Hatalar

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
12/10/2020, 23:19

fenerli6774

İ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.
1 2 3 4 5 6 7 8