Bu dosya, aynı çalışma kitabındaki bir sayfadan verilerin ADO bağlantısı ve SQL sorgusu ile ListBox nesnelerine nasıl alınacağını gösterir. Ay ve yıl iki ayrı ComboBox ile seçilir; seçime göre ürün bazında ve ürün grubu bazında toplamlar iki ListBox'ta listelenir.
Listeleme işlemi formülle değil, makro içindeki SQL sorgusuyla yapılır.
Dosyanın içeriği
- SORGU: ComboBox ve ListBox nesnelerinin bulunduğu çalışma sayfasıdır. Sayfada hangi sütunların listeleneceğini anlatan notlar (ürün adı, ürün grubu, adet, tutar) ve 2017 Mart ayı seçildiğinde gelecek sonuçlara örnek yer alır.
- PARAMETRE: A1:A12 aralığında OCAK'tan ARALIK'a ay adları bulunur.
- VERI: Sorgunun kaynağı olan veri sayfasıdır (B1:W49). ID NO, AY, ADI SOYADI, SATIŞ NO, ADET, FİYAT, STOK KODU, TC NO / VERGİ NO, TELEFON NO (2), VERGİ DAİRESİ ve SATIŞ ELEMANI sütunlarını içerir.
Kullanılan formüller
VERI sayfasında yer alan toplama formülü, I sütunundaki ürün adına göre K sütunundaki tutarları toplar:=SUMIF($I$2:$I$13,I38,$K$2:$K$13)
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir. Makrolar SORGU sayfasının kod bölümündedir ve elle çalıştırılmaz; ComboBox seçimi değiştiğinde otomatik çalışır.- ComboBox1_Change ve ComboBox2_Change: Ay veya yıl seçimi değiştiğinde sorgula yordamını çağırır.
- sorgula: İki ComboBox da doluysa ListBox1 ve ListBox2 içeriğini temizler. Ardından Microsoft ACE OLEDB 12.0 sağlayıcısı ile çalışma kitabının kendisine ADODB bağlantısı açar. İlk sorgu seçilen yıl ve aya göre ürün adı bazında adet ve net tutar toplamını ListBox1'e, ikinci sorgu aynı toplamları ürün grubu bazında ListBox2'ye aktarır. Tutarlar ROUND ile iki ondalığa yuvarlanır.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- SORGU sayfasında ay ve yıl ComboBox'larından seçim yapın.
- Seçim tamamlandığında ürün adı ve ürün grubu toplamları iki ListBox'ta listelenir.
- Kendi verinizde kullanmak için VERI sayfasındaki verileri değiştirin; sorgu YIL, AY, ÜRÜN ADI, ÜRÜN GRUBU, ADET ve NET TUTAR başlıklarını kullandığından bu başlıkların sayfada bulunması gerekir.