Alt Tabloların Tümüne Otomatik Veri Girişi - Baskı Önizleme +- AccessTr.neT (https://accesstr.net) +-- Forum: Microsoft Access (https://accesstr.net/forum-microsoft-access.html) +--- Forum: Access Cevaplanmış Soruları (https://accesstr.net/forum-access-cevaplanmis-sorulari.html) +--- Konu Başlığı: Alt Tabloların Tümüne Otomatik Veri Girişi (/konu-alt-tablolarin-tumune-otomatik-veri-girisi.html) |
Re: Alt Tabloların Tümüne Otomatik Veri Girişi - fenerli6774 - 28/09/2020 Formün üsüt kısmındaki açılan kutudan 2019 seçtim.Ay olarakta Haziranı seçtim. Butona bastığımda kütük defterindeki aktif olan tüm öğrencilerin "YIL ALT TABLOSU"na 2019 yılı eklenmeli. ve her aktif öğrencinin yıl alt tablosuna bağlı "HARÇLIK ALT" tablosuna iligli ay ve diğer harçlık verileri eklenmeli. Sizin verdiğiniz örnekte sadece yılID si 1 olan alana bağlı harçlık alt tablosundaki veriler işleniyor. 2019 u seçtiğimde ilgili yıltablosunda 2019 olmadığı için kayıt yapılamaz diyor. Sizin verdiğiniz örneği biraz geliştirmeye çalıştım ama beceremedim. Yardımcı olursanız memnun olurum. Değerli vakitlerinizi ayırdığınız için şimdiden teşekkür ederim.
YUKARIDAKİ OLAYIN TÜRKÇESİNİ BİZİM ANLAYABİLECEĞİMİZ DİLDE AÇIKLAYABİLİR MİSİNİZ? BİR ÖRNEKTEN ALDIM. ÖRNEK ÜZERİNDE TABLO ADI: TABLO1 SORGU ADI :srg SORGU FORM ADI : srg Forma adı :Form1 RE: Alt Tabloların Tümüne Otomatik Veri Girişi - berduş - 29/09/2020 strSQL = "SELECT * From Srg WHERE süz=" & cmbMonth & "" & cmbYear belli bir ay ve yıla ait kayıt var mı onu kontrol eder Set rst = db.OpenRecordset(strSQL) If rst.RecordCount = 0 Then eğer kayıt yoksa aşağıdaki blok ile kaydı ekler Dim intI As Integer, intJ As Integer, strnum As String intMonth = Me!cmbMonth intYear = Me!cmbYear intFirst = 1 intLastDay = Day(DateAdd("m", 1, DateSerial(intYear, intMonth, 1)) - 1) DateSerial(intYear, intMonth, 1): girilen yıl ve ayın 1. gününü bulur DateSerial (yıl, ay, gun) fonksiyonu girilen rakamları tarihe cevirir DateAdd("m", 1, DateSerial(intYear, intMonth, 1)) dateSerial ile bulununa tarihe 1 ay ekleyerek bir sonraki ayın ilk gününü bulur Dateadd(aralikturu, eklenecek miktar, tarih) fonksiyonu ile belli bir tarihe gün ay yıl ...saniye ekleyip çıkartabilirsiniz Day(DateAdd("m", 1, DateSerial(intYear, intMonth, 1)) - 1) bu fonksiyon ile de önce ayın son gününü bulup o ayın kaç gün çektiği hesaplanıyor Mesela acilir kutularda 2020 yılı ve 7. ayi var DateSerial(2020,7,1)->1.7.2020 Dateadd("m",1, 1.7.2020)-->m kullanıldığı için fonksiyon girilen 1.7.2020 tarihine 1 ay ekler ve yeni tarihimiz 1.8.2020 cikar Day(DateAdd("m", 1, DateSerial(intYear, intMonth, 1)) - 1)-->>day(1.8.2020 -1)-->>day(31.7.2020)-->>31 Böylece o ay 31 gün olduğundan tabloya 31 kayıt eklememiz gerektiği ortaya çıkar aşağıdaki döngü bu ise yarar intLast = intFirst + intLastDay - 1 1+31-1=31 intJ = 1 For intI = intFirst To intLast 1den31e kadar say strnum = Format(intI, "00") gun 2 haneli olacak 09, 08,,,,05 gibi rst.AddNew yeni kayıt ekle rst![tarih] = strnum & "/" & cmbMonth & "/" & cmbYear eklenecek veri 01/07/2020 rst.Update recordset guncelle Next intI sonraki sayıya git Else eğer kayıt sayısı 0dan fazla ise uyarı ver ve fonksiyondan cik MsgBox "Dikkat Bu Seçime Ait Tarih Bilgisi Daha Önce Aktarıldı" Exit Sub End If rst.Close db.Close End Sub Kabaca böyle birsey RE: Alt Tabloların Tümüne Otomatik Veri Girişi - fenerli6774 - 29/09/2020 Açıklamanızı inceledim. Elinize sağlık. Teşekkür ederim. Uğraştığım dosya ve istediğim durum 1. sayfada. Örnekteki recordset olayı benim olayımı çözecek gibi duruyor. deneme yanılmayla öğrenmeye çalışıyorum. Ne kadar sürer bilemem. İnşallah çabuk çözerim. Sizlerde bir bakıp yardımcı olursanız memnun olurum. RE: Alt Tabloların Tümüne Otomatik Veri Girişi - berduş - 29/09/2020 Maalesef 2 hafta kadar yokum, dönünce ilgilenmeye çalışırım. RE: Alt Tabloların Tümüne Otomatik Veri Girişi - fenerli6774 - 29/09/2020 Mantığı ilk aktif öğrenciyi bul formda ilişkisiz açılan kutuda yazan yılı; ilk öğrencinin alttablosunda ara yoksa ekle varsa formda ilişkisiz açılan kutuda yazan ay'ı bulunan yılın alttablosunda ara yoksa ekle varsa formdaki ilişkisiz olan katsayı,ekgösterge,tutar,yuvarla,ödenen,kalan verilerini ekle. sonraki aktif öğrenciyi bul ŞEKLİNDE bir döngü olacak. Yardımcı olabilecek var mı? projemde ilişkilendirme ve sorguyu yanlış yapmış olabilirim. Teşekkürler. sayın ozanakkaya; yapmak istediğim şu: bir kütük defterim var.defterimde 5000 öğrenci var. Öğrencilerden 100 tanesi aktif. Aktif olan öğrencilere tıkladığımda yılları gösteren alttablo açılacak. Alttablodan yılı seçtiğimde öğrencinin ay ay aldığı harçlık verileri çıkacak. harçlık formunda ilişkisiz durumdaki kutulara yıl,ay,ekgösterge,katsayı,tutar,yuvarla,ödenen,kalan verilerini yazacağım. Butona bastığımda bu verileri her aktif öğrenciye aktaracak. Öğrencinin alttablosunda seçilen yıl yoksa ekleyecek. Yıl alttablosunda seçilen ay yoksa ekleyecek. Tam olarak yapmak istediğim bu. Siz yada başka bir arkadaş Yardımcı olursanız çok memnun olurum. Dim harçlık As ADODB.Recordset Set harçlık = New ADODB.Recordset Dim Sql As String If Me.talebe.ItemsSelected.Count = 0 Then Dim i As Integer For i = 0 To Me.talebe.ListCount - 1 Sql = "select * from tblHarçlıklar" harçlık.Open sql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic harçlık.AddNew Yukarıdaki kod dizilimi satır satır açıklayabilecek arkadaş varsa memnun olurum. RE: Alt Tabloların Tümüne Otomatik Veri Girişi - ozanakkaya - 01/10/2020 Merhaba, örnek uygulamanızı düzenledim, sadece sorgu kullanıldı. Yıl ve Aya göre öğrenci eklemede sıkıntı yok ise belirtin, ek gösterge vs diğer hesaplamalar sorguya dahil edilebilir. |