Skip to main content

AccessTr.neT


Alt Tabloların Tümüne Otomatik Veri Girişi

Alt Tabloların Tümüne Otomatik Veri Girişi

#8

        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
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da

Bu Konudaki Yorumlar
Ekli dosya - Yazar: fenerli6774 - 28/09/2020, 11:51
RE: Alt Tabloların Tümüne Otomatik Veri Girişi - Yazar: berduş - 29/09/2020, 09:37
Task