Bu dosya, aynı çalışma kitabındaki bir sayfaya ADO (ADODB) bağlantısı kurarak kayıtları Recordset üzerinde döngüyle okumayı gösterir. Örnek uygulamada KESINTILER sayfasındaki tutarlar, verilen yıl ve ay değerine göre toplanır.
Dosya makro içerir (.xlsm); açarken makroları etkinleştirmeniz gerekir.
Dosya makro içerir (.xlsm); açarken makroları etkinleştirmeniz gerekir.
Dosyanın içeriği
- KESINTILER: A1:C7 aralığındaki veri tablosudur. Sorgu bu sayfadaki YIL, AY ve TUTAR alanlarını kullanır.
- rapor: H11:I13 aralığında YIL, AY ve TUTAR başlıkları bulunur. Seçilen yıl ve ay için toplam bu alanda gösterilir.
- VBA tarafında Baglanti ve Kodlar adlı iki modül yer alır.
Makrolar
- Baglanti_Yap (Baglanti modülü): Dosyanın kendisine ADODB.Connection nesnesiyle bağlanır. Excel 2007 ve üzeri sürümlerde Microsoft.ACE.OLEDB.12.0 sağlayıcısı, eski sürümlerde Microsoft.Jet.OLEDB.4.0 sağlayıcısı kullanılır. İlk satırlar başlık kabul edilir (hdr=yes). Bağlantı Baglan adlı genel nesne değişkeninde tutulur.
- ADODongu (Kodlar modülü): Yil ve Ay parametrelerini alan bir fonksiyondur. Önce bağlantıyı kurar, ardından KESINTILER sayfasından yıl ve aya uyan TUTAR değerlerini seçen bir SQL sorgusu çalıştırır. Kayıt varsa Recordset sonuna kadar döngüyle ilerleyerek tutarları toplar ve toplamı döndürür; kayıt yoksa 0 döndürür.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- KESINTILER sayfasındaki A1:C7 aralığına kendi yıl, ay ve tutar verilerinizi girin.
- Alt+F11 ile VBA düzenleyicisini açın; ADODongu fonksiyonunu kod içinden veya bir hücreden yıl ve ay değerleriyle çağırın.
- Dönen değer, ilgili yıl ve aya ait toplam tutardır.
- Veri sayfası adı veya sütun başlıkları değişirse Kodlar modülündeki sorgu metnini buna göre güncelleyin.