Bu dosya, bir Excel sayfasındaki kayıtların ADO ile UserForm üzerindeki ListBox nesnesine alınmasını ve kriter nesnelerinde değişiklik yapıldıkça listenin anında filtrelenmesini gösterir. Filtre için ayrı bir butona basılmaz; TextBox veya ComboBox içeriği değiştiği anda liste güncellenir.
Dosyanın içeriği
- DATA: A1:E12 aralığındaki kayıt tablosu. Sütunlar TARİH, DURUMU, BLOK, DAİRE ve AÇIKLAMA başlıklarıyla ListBox'a aktarılır.
- Sayfa2: ComboBox listelerinin kaynağı. A1:A3 aralığında AÇIK, KAPALI, BEKLİYOR durum değerleri, B1:B7 aralığında A BLOK'tan G BLOK'a kadar blok listesi yer alır.
- UserForm1: ListBox1, iki tarih TextBox'ı (TextBox6, TextBox7) ve iki ComboBox (ComboBox3, ComboBox4) içeren form.
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir. Kodda dosya silme veya dışarıya bağlantı gibi zararlı bir işlem yoktur; bağlantı yalnızca çalışma kitabının kendi dosyasına kurulur.- Baglanti_Yap (baglanti modülü): ADODB bağlantısı oluşturur. Microsoft.ACE.OLEDB.12.0 sağlayıcısıyla, çalışma kitabının kendisini veri kaynağı olarak (başlık satırı açık) açar. Excel 2007, 2010, 2013 ve sonrası sürümler için aynı bağlantı dizesi kullanılır.
- UserForm_Initialize: Form açılırken DATA sayfasındaki kayıtları TARİH sütununa göre sıralı çeker, ListBox1'i beş sütunlu hale getirir, sütun genişliklerini ayarlar ve ilk satıra başlıkları yazar.
- ComboBox3_Change, ComboBox4_Change, TextBox6_Change, TextBox7_Change: Her biri değişiklik anında Listele yordamını çağırır.
- Listele: Başlangıç tarihi (TextBox6), bitiş tarihi (TextBox7), blok (ComboBox4) ve durum (ComboBox3) için dolu olan kriterlerden Recordset filtresi oluşturur. Sonuç ListBox'a yazılır; eşleşen kayıt yoksa liste boşaltılır, hiç kriter yoksa tüm liste yeniden yüklenir.
Nasıl kullanılır
- Dosyayı açıp makroları etkinleştirin.
- Visual Basic düzenleyicisinde UserForm1 formunu çalıştırın (F5).
- Tarih kutularına geçerli bir tarih girin; girilen tarih ve sonrası ile girilen tarih ve öncesi kayıtlar listelenir.
- ComboBox'lardan durum ve blok seçin; liste her seçimde güncellenir.
- Kendi verinizi kullanmak için DATA sayfasındaki kayıtları değiştirin; ComboBox değerleri Sayfa2 sayfasından düzenlenir.