Skip to main content

AccessTr.neT


Alt Tablolarda İşlemler

Alt Tablolarda İşlemler

Çözüldü #1
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.
.rar alt tablolara veri girişi.rar (Dosya Boyutu: 131,74 KB | İndirme Sayısı: 9)
Cevapla
#2
(10/10/2020 14:54)fenerli6774 Adlı Kullanıcıdan Alıntı: Ayrıca filtrelemede aktif öğrenciler vardı buna  yatılılık durumu "PARASIZ" filtresini eklmeyi beceremedim
hangi filtrelemede? srgaktifharclıkta çalışıyor?
Cevapla
#3
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.
Cevapla
#4
butondaki ilk insert sorgusunda, kütük defterinde yıl alanı yok ama siz oraya yıl eklemeye çalışmışsınız
Cevapla
#5
Öncelikle Yapılmaması Gereken Ölümcül HatalarURL'ye Git 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.


Visual Basic Code
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

"Boş Örnek Eklerim, Yapıp Verirler" demeyin, örneğinizi hazırlayın.
Komplike kod talebiniz var ise İletişim bağlantısından bize ulaşın. 
Cebelleşmezsen Öğrenemezsin. 
Cevapla
#6
İ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.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task