Excel Forum
ALTIN ÜYELİK Hakkında Bilgi


Geri Git   Excel Forum > Diğer Yazılımlar > Access Örnekleri ve Bilgileri > Access Dersanesi
Atatürk
Şifremi Unuttum

DUYURU SİSTEMİ / REKLAM PANOSU

Access Dersanesi Bu başlıkta eğitim ve öğretim amaçlı her türlü access dokümanını paylaşabilirsiniz.

Özel Arama


Yanıtla
 
Paylaş Konu Araçları Görünüm Modları
Eski 30-05-2010, 17:18   #1
Taruz
Uzman
 
Taruz kullanıcısının avatarı
 
Giriş: 18/04/2007
Şehir: İstanbul
Mesaj: 2,062
Excel Vers. ve Dili:
Access 2010
Varsayılan DCount Fonksiyonu

Merhaba..

Accesste sık kullandığımız fonksiyonlardan biri de DCount fonksiyonudur.. Özelliği, bir kayıt kümesine bağlı bir alanda bulunan kayıtların sayısını belirler.. Bu fonksiyonu sorguda ve VBA editöründe kullanabileceğimiz gibi fom üzerindeki bir denetimde de kullanabiliriz..

Yapısı şu şekilde..:



DCount("ifade/alan", "etkialanı/kayıt kümesi", "kriterler")



İlk kısım yani ifade/alan, kayıt saydıracağımız alanı ifade eder.. Bu kısmı boş bırakamayız.. Bu kısım tablodaki bir alan olabileceği gibi sorguda bulunan bir alan da olabilir.. Sorguda hesaplanarak elde edilmiş (Kalan:[Alınan]-[Verilen] gibi..) veya mevcut alanların dışında oluşturulmuş ifadeleri de kullanabiliriz..

Bu kısımda ayrıca yıldız (*) yani joker karakterini de kullanabiliriz.. Fonksiyon bu durumda alanın değil kayıt kümesinin (tablo veya sorgu) kayıt sayısını, alanın boş veya dolu olup olamdığına bakmaksızın sonuç verir..

etkialanı/kayıt kümesi, ilk bölümdeki ifade ya da alanın bulunduğu tablo veya sorguyu ifade eder.. İsmini bu kısma yazacağız.. Bu kısmı boş geçemeyiz.. Şunu da unutmadan not düşelim, bu kayıt kaynağı eğer sorgu ise harici parametre istemeyen bir sorgu olmalı.. Parametre kaynağı kapalı sorgularda hata döndürür.. Örneklersek; ölçütünü form1 deki bir metin kutusundan alan bir sorgudan DCount ile bir değer almak istiyorsak form1 açık olmalı..

kriterler bölümü zorunlu değil. Bu kısmı oluşturmadan yazacağımız deyimler kayıt kümesindeki tüm kayıtlar üzerinden sonuç verir.. DCount fonksiyonu genelde kritersiz kullanılmaz zaten.. Bu nedenle bu kısmı biraz açalım..

Kriteri uygulayacağımız alan, ikinci kısımda işlediğimiz alan ya da sorguda varolan bir alan olmalı..

Bu kısımda birden fazla alan ve bununla ilişkili kriter kullanabiliriz.. Örnekleyelim..:

Amacımız bir formda bulunan metin1 isimli metin kutusuna Ürünler tablosunda bulunanan Türüalanında bulunan kayıtların sayısını saydırmak..

Önce fonksiyonumuzun ilk iki kısmını oluşturalım..

=DCount("Tur";"Urunler")



Kriter kısmını yazmadığımız için Urunler tablosundaki Tur alanında veri olan kayıtların sayısını aldık..

Bu kısımda şunu da açıklamak lazım.. Bu fonksiyonu form içindeki bir nesnede kullandığımızda başına ( = ) eşittir koymamız gerekir.. Ayrıca kısımları ayıran ( , ) virgül yerine ( ; ) noktalı virgül kullanmalıyız.. (Fonksiyon sorgu içinde kullanılıyorsa da noktalı virgül olmalı)

Şimdi fonksiyona kriter vererek Adı Elma olan kayıtların sayısını öğrenelim..



=DCount("*";"Urunler";"Adi= 'elma' ")




Burada ölçüte aynı tablodaki Adi alanını koyduk ve bize adı elma olan kayıtların sayısını vermesini istedik..

Ölçütte dikkat etmemiz gerek bir önemli nokta da ölçütte kullandığımız tırnaklardır.. Ölçütü sadece elma olarak yazmış olsaydık fonksiyon bunu bir denetim olarak kabul edecek ([elma]) ve türünü çözemeyecekti.. Biz elma kriterinin başına ve sonuna ( ' ) tek tırnak koyarak ölçütün bir denetim olmadığını ve metin veri türünde olduğunu fonksiyona izah ettik..

Ölçüte vereceğimiz sayısal değerlerde (bu ölçüt bir denetimden gelmiyorsa tabii) tırnak kullanmamıza gerek yok.. Örnekleyelim hemen..:

Ürün numarası 2 olan ve Adı alanında kayıt olan Ürünümüzün tablomuzdaki sayısını şöyle alıyoruz..


=DCount("Adi";"Urunler";"UrunId= 2")




Burda da sayısal değeri tırnak koyarak çağıralım..


=DCount("Adi";"Urunler";"UrunId= " & 2)



Görüldüğü gibi sayısal değerlerde ( " ) çift tırnak kullanıyoruz..

Ölçütümüzü form üzerindeki bir metin kutusuna (ismine metin2 diyelim) yazıp fonksiyona buradan da verebiliriz.. Şöyle ki;


=DCount("Adi";"Urunler";"UrunId=" & [metin2])


Ölçütle tırnağın birleşimin şekline dikkat!

Ölçütümüz metin türünde, yani ilk verdiğimiz elma örneğimizdeki gibi olsaydı tırnakları bu şekilde kullanmamız gerekirdi..:


=DCount("Tur";"Urunler";"Adi= '" & [metin2] & "' ")



Şimdi kriter kısmını biraz daha geliştirelim..

UrunAlıs tablosunda, UrunId numarası 2 olan üründen 20.10.2009 tarihinde kaç defa kayıt girilmiş olduğunu bulalım..


=DCount("Alinan";"UrunAlim";"UrunId= 2 and AlimTarih= #20-10-2009#")



Ölçütleri şimdi de metin kutularından çağıralım;



=DCount("Alinan";"UrunAlim";"UrunId=" & [metin2] & " and AlimTarih=#" & Format([metin3];"dd-mm-yyyy") & "#")



Burada dikkat ettiyseniz tarih alanının biçimini değiştirdik.. Sebebi DCount fonksiyonun tarih biçimini gün, ay ve yılı aralarında ( - ) olarak istemesi.. Tabii bu durumu denetimlerin ya da alanların biçimini değiştirerek de düzeltebiliriz..

Tarih ölçütüyle bilinmesi gereken diğer ayrıntı da diğer tüm fonksiyonlarda olduğu gibi tarihi belirtecek ( # ) diyez işareti ile kullanılması gerektiğidir..

Kriter sayısı 2 den fazla olabilir.. Bu konuda kıstlamanız yok..

Şimdi tüm bu kullanım şekillerini VBA için de hazırlayıp, burada nasıl kullanılacağını göstererek bir yerde özet çıkartmış olalım ve de konumuzu tamamlayalım..




'Kritersiz kullanım
Me.Metin1 = DCount("*", "Urunler")

'Metin türünde bir kriter uyguladık..
Me.Metin1 = DCount("*", "Urunler", "Adi= 'elma' ")

'Metin türünde bir kriteri formdaki denetimden verelim..
Me.Metin1 = DCount("Tur", "Urunler", "Adi= '" & [metin2] & "' ")

'Sayısal türdeki bir kriteri formdaki denetimden verelim..
Me.Metin1 = DCount("*", "Urunler", "UrunId=" & [metin2])

'Sayısal ve Tarih türünde iki ayrı kriteri aynı anda kullanalım..
Me.Metin1 = DCount("Alinan", "UrunAlim", "UrunId= 2 and AlimTarih= #20-10-2009#")

'Sayısal ve Tarih türündeki iki kriteri formdaki denetimlerden verelim..
Me.Metin1 = DCount("Alinan", "UrunAlim", _"UrunId=" & [metin2] _& " and AlimTarih=#" & Format([metin3], "dd-mm-yyyy") & "#")
__________________
"Bulunamayan yerleri bulmak için önce kaybolmak gerekir.''
Kaptan Hector Barbossa
Taruz Çevrimdışı   Alıntı Yaparak Cevapla
Eski 30-05-2010, 17:23   #2
Serdar SELEN
Altın Üye
 
Serdar SELEN kullanıcısının avatarı
 
Giriş: 23/10/2007
Şehir: Balıkesir
Mesaj: 311
Excel Vers. ve Dili:
İşyerinde Excel 2003 ing Evde Excel 2007 tr
Varsayılan

Merhaba,

Elinize sağlık çok güzel bir paylaşım.
__________________
Bilelim ki milli benliğini bilmeyen milletler başka milletlere yem olurlar.
ATATÜRK
Serdar SELEN Çevrimdışı   Alıntı Yaparak Cevapla
Eski 30-05-2010, 20:50   #3
assenucler
Altın Üye
 
Giriş: 19/08/2004
Şehir: Istanbul
Mesaj: 2,500
Excel Vers. ve Dili:
Office 2016 TR - Windows 10 TR x64
Varsayılan

Sayın Taruz;

İyi akşamlar ve hafta sonları..

Süpersiniz... Süper bir anlatım... Sağol varol.. Teşekkürler...
__________________
Windows 10 Türkçe
Office 365 TR Ev Ekstra 2016
assenucler Çevrimdışı   Alıntı Yaparak Cevapla
Eski 01-06-2010, 16:12   #4
Recep İpek
Uzman
 
Recep İpek kullanıcısının avatarı
 
Giriş: 14/02/2006
Şehir: İstanbul
Mesaj: 3,439
Excel Vers. ve Dili:
( Excel 2010 - İngilizce )
Varsayılan

Sn. Taruz

Bilgilendirme ve açıklamalarınız için çok teşekkürler.
__________________
www.excel.web.tr
Recep İpek Çevrimdışı   Alıntı Yaparak Cevapla
Yanıtla


Konu Araçları
Görünüm Modları

Gönderme Kuralları
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
SimgelerAçık
[IMG] kodu Açık
HTML kodu Kapalı


Saat 11:57


Bu forum Elit NET - www.elitnet.com.tr tarafından sunulmaktadır.

Excel Eğitimi - Mobil Uygulama - Çorlu - Çorlu Web Tasarım - Tarot Falı - invest in turkey - Lingerie - Dyeing Machine - Karton Bardak- Çorlu Özel Eğitim- Site Yönetimi- Led Aydınlatma- Pronet Tekirdağ- Çorlu Kamera- Pronet Edirne- Pronet Kırklareli- Pronet Çerkezköy- Pronet Çorlu- Pronet Lüleburgaz- Pronet Keşan- Çorlu Araç Takip- Çorlu Su Arıtma- Boru Profil- Gebze Emlak- Beylikdüzü Temizlik- İstanbul Burun Estetiği- Bakır Sülfat- Rampa- Rotary- Çorlu İnternet Sitesi- youngblood- Çorlu Palet- Çerkezköy Palet- Çorlu Prefabrik- Çorlu Sürücü Kursu- Çorlu Sandviç Panel- Şişli Avukat- Korona Test Kalemi- Çorlu Vinç- Çorlu Pimapen Tamiri-
Powered by vBulletin Version 3.7.2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Advertisement System V2.6 By   Branden