Bu dosya, bir sütundaki tekrar eden değerlerin yalnızca bir kez sayılmasını ADO yöntemiyle gösterir. Sayım işlemi, VBA ile yazılmış Benzersiz_Say adlı kullanıcı tanımlı fonksiyon tarafından yapılır. Çok sayıda satır içeren veri aralıklarında benzersiz sayım ihtiyacı için hazırlanmış, ADO öğrenmek isteyenlere yönelik basit bir örnektir.
Dosya makro içerir (.xlsm); açarken makroları etkinleştirmeniz gerekir.
Fonksiyon parametre olarak sütun başlığını metin olarak alır ve o başlığa ait benzersiz kayıt sayısını döndürür.
Dosya makro içerir (.xlsm); açarken makroları etkinleştirmeniz gerekir.
Dosyanın içeriği
- Sayfa1: B sütununda "ALT ETİKET" başlığı altında şehir adları (örnekte İSTANBUL) listelenir. E sütununda "BENZERSİZ" başlığı bulunur ve sonuç hücresi burada yer alır. Örnekte sonuç 4 olarak görünür.
- Module1: Bağlantı ayarlarını ve Benzersiz_Say fonksiyonunu içeren VBA modülüdür.
Kullanılan formüller
E2 hücresinde fonksiyon, başlık hücresine başvurularak çağrılır:=Benzersiz_Say(C1)
Makrolar
- Benzersiz_Say: Çalışma kitabının kendi dosyasına ADO bağlantısı açar. Ardından Sayfa1 üzerinde, verilen sütun başlığı için SELECT COUNT(*) FROM (SELECT DISTINCT ...) sorgusunu çalıştırır ve dönen değeri hücreye yazar. Kayıt dönmezse sonuç 0 olur.
- Modülün başındaki koşullu derleme bölümü, VBA7 (yeni sürüm) ortamında Microsoft.ACE.OLEDB.12.0 sağlayıcısını, eski sürümlerde Microsoft.Jet.OLEDB.4.0 sağlayıcısını seçer.
- Makro, yalnızca dosyanın kendisini okur; dosya silme ya da dış bağlantı işlemi içermez.
- Makro ayrıca çalıştırılmaz; fonksiyon hücre formülü olarak çağrıldığında çalışır.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- Verileri Sayfa1 üzerinde, ilk satırı başlık olacak biçimde girin.
- Sonuç hücresine Benzersiz_Say fonksiyonunu yazın ve parametre olarak sayılacak sütunun başlığını içeren hücreyi gösterin.
- Veriler değiştiğinde sorgu dosyanın kayıtlı halini okuduğundan, sonucu güncellemek için önce dosyayı kaydedin, ardından hesaplamayı yenileyin.