Skip to main content

AccessTr.neT


Nz Fonksiyonu (İşlevi) Kullanımı Anlatımı

tdsharun
tdsharun
22
24209

Nz Fonksiyonu (İşlevi) Kullanımı Anlatımı

#1
NZ işlevi

Anlatıma başlamadan önce anlatımda kullanacağımız terimleri ve anlamlarını vermekte fayda görüyorum.

Nz İşlevinin yazımına bakalım önce:

VBA: Nz(Variant, boşsadeğer)

Form, sorgu, rapor: = Nz(Variant; boşsadeğer)

Dikkat: VBA’da kullanılırken Variant ve boşsadeğer arasında “,” (Virgül) kullanılır. Form, sorgu ve raporda ise “;” (Noktalı Virgül) kullanılır.

Variant: Zorunludur. Veri türünden (Veri Türü: Alanın hangi veri türlerini içerebileceğini belirleyen özelliği. Veri türlerinin arasında, Boole, Tamsayı, Para Birimi, Tek, Çift, Tarih, Dize ve değişken (varsayılan) yer alır) Variant değişkeni. Yani özetle; Formda, raporda, sorguda bir Alanı, Vba kodlarında ise bir Alanı veya bir Değişkeni ifade eder.

Boşsadeğer: Bir variant bağımsız değişkeni Boş ise, döndürülecek değer sağlayan bir Variant'tır. Bu bağımsız değişken, sıfırdan veya sıfır uzunluklu dizeden başka bir değer döndürmenize olanak sağlar. Burada dikkat edilmesi gereken nokta; NZ işlevini bir sorguda deyim içinde, boşsadeğer bağımsız değişkeni olmadan kullanırsanız, sonuçlar, boş değerler içeren alanlarda sıfır uzunluklu bir dize olacaktır. Bu sebeple bir sorgu ifadesinde kullanıldığında, NZ işlevi her zaman boşsadeğer bağımsız değişkenini içermelidir. Yani sorguda toplama yaptırıyorsak şu şekilde olmalıdır:

Kod:
Nz'li Toplama: Nz([txtAlan1];0)+Nz([txtAlan2];0)
Bir ifadede aritmetik işleç (+, -, * ve /) kullandığınızda, ifadedeki denetimlerden birinin değeri boşsa, bütün ifadenin sonucu boş olur. Buna “Boş Değer Yayma” denir. İfadede kullandığınız denetimlerden birindeki herhangi bir kaydın boş değer içerme olasılığı varsa, NZ işleviyle boş değeri sıfıra dönüştürerek boş değer yayma özelliğinden kaçınabilirsiniz.

Kod:
=Nz([txtAlan1])+Nz([txtAlan2])
Nz işlevi, Boş değer içerme olasılığı bulunan ifadeler için kullanışlıdır. Boş değer içerse bile bir ifadeyi Boş olmayan bir değeri hesaplamaya zorlamak için “sıfır, sıfır uzunluklu bir dize veya belirtilmiş başka bir değeri” döndürmek üzere NZ işlevini kullanın.

Örneğin, txtAlan1 Boş olduğunda txtAlan1+txtAlan2 ifadesi her zaman Boş değerini döndürür. Ancak, Nz(txtAlan1)+ Nz(txtAlan2) ifadesinde txtAlan1 Boş ve txtAlan2 değerinin 2 olduğunu varsayarsak ifade 2 döndürür. Yani sonuç 2 olur.

Nz işlevini çoğunlukla IIF yerine kullanabilirsiniz. Ancak öncelikle IIF işlevinin kullanımı hakkında biraz bilgi verelim:

IIf işlevi, bir koşula bağlı olarak, koşulun doğru veya yanlış olması durumunda doğru veya yanlış değerleri için değer döndürmeye yarayan bir işlevdir. NZ işlevine benzerliği dikkatinizi çekmiştir. Ancak IIF işlevinin kullanım alanı sadece bu konudaki NZ işlevine benzerliği ile sınırlı değildir. Bu konuda sadece NZ işlevi ile benzerliğinden bahsedelim. IIF işlevinin çalışma mantığı şu şekildedir:

Kod:
IIF(KOŞUL, DOĞRUYSADEĞER, YANLIŞSADEĞER)
Örnek üzerinde açıklamak gerekirse;

Kod:
IIf([AlanAdi] = 100, “EŞİT”, “EŞİT DEĞİL”)
Yukarıdaki açıklamaya göre kodu anlatalım: Eğer, AlanAdi alanı 100’e eşitse EŞİT, değilse EŞİT DEĞİL değerini döndür. Bu örnekte, AlanAdi alanının 100’e eşit olması veya olmaması durumunda ifadenin ne göstermesi gerektiğini tanımladık.

Not: IIF işlevi bu kadar kısa bir anlatımla anlatılabilecek bir konu değildir. Ayrıntılara girmeden konumuza devam etmek istiyorum. Daha sonra IIF işlevi ile ilgili ayrıntılı bir konuyu işleyeceğiz.

Şimdi, NZ işlevinin yerine IIF işlevinin kullanımı örneğine bakacak olursak, aşağıdaki kodda, istenen sonucu döndürmek için IIF işlevini içeren iki ifade gereklidir. IIF işlevini içeren ilk ifade olan “Hesap”, bir değişkenin (AlanAdi) değerini denetlemek ve Boş ise sıfıra dönüştürmek için kullanılır.


Kod:
Dim Hesap As Integer
Dim Sonuc As Integer

Hesap = IIf(IsNull([AlaninAdi]), 0, [AlaninAdi])
Sonuc = IIf(Hesap > 50, "Yüksek", "Düşük")

Sonraki örnekte, NZ işlevi ilk ifadeyle aynı işlevselliği sağlar ve istenen sonuç iki yerine bir adımda elde edilir.

Kod:
Dim Hesap As Integer
Dim Sonuc As Integer

Sonuc = IIf(Nz([AlaninAdi]) > 50, "Yüksek", "Düşük")

İsteğe bağlı boşsadeğer bağımsız değişkeni için değer sağlarsanız, variant Boş olduğunda o değer döndürülür. İsteğe bağlı bu bağımsız değişkeni ekleyerek, IIF işlevini içeren bir ifade kullanmaktan kaçınabilirsiniz. Örneğin, aşağıdaki ifade [AlaninAdi] değeri Boş ise, dize döndürmek için IIF işlevini kullanır.

Kod:
Dim Hesap As Integer
Dim Sonuc As Integer

Sonuc = IIf(IsNull([AlaninAdi]), _
    "Alan Boş", [AlaninAdi])

Sonraki örnekte, NZ işlevine sağlanan isteğe bağlı bağımsız değişken, [AlaninAdi] Boş ise, döndürülecek dizeyi sağlar.

Kod:
Sonuc = Nz([AlaninAdi], "Alan Boş")
Örnek
Aşağıdaki örneklerde, bu işlevin Visual Basic for Applications (VBA) modülündeki kullanımı gösterilir. Aşağıdaki örnek, form üzerindeki bir denetimi değerlendirir ve denetimin değerine göre iki dizeden birini döndürür. Denetimin değeri Boş ise, bu yordam Boş değerini sıfır uzunluklu bir dizeye dönüştürmek için NZ fonksiyonunu kullanır.

Kod:
Public Sub CheckValue()

Dim frm As Form
Dim ctl As Control
Dim Sonuc As Variant

Set frm = Formlar!Musteriler

Set ctl = frm!NakilYeri

Sonuc = IIf(Nz(ctl.Value) = vbNullString, _
"Değer Yok", ctl.Value & ".")

MsgBox Sonuc, vbExclamation

End Sub

Yukarıda anlatılan konu ile ilgili örnek dosya ekte sunulmuştur. Örnek çalışmada anlatımda geçen her ayrıntıyla ilgili örnek verilmiştir. Örnekte NZ fonksiyonunun SQL’da, formda, raporda ve VBA’da kullanımı ayrıntılı bir şekilde anlatılmıştır. Yine aynı şekilde IIF fonksiyonunun NZ fonksiyonu yerine kullanımı da Vba kodlarında gösterilmiştir.

Anlatımda Faydalanılan Kaynaklar:

http://office.microsoft.com/tr-tr/access...0728911055

http://office.microsoft.com/tr-tr/access...3653491055

http://office.microsoft.com/tr-tr/access...61055.aspx

http://alibal.blogcu.com/access-ifadeler...31751.html


Bu konu anlatımı, www.accesstr.net için tdsharun tarafından yapılmış olup "Kaynak Göstermek Şartıyla" alıntı yapılabilir. Aksi takdirde (Ç)alıntı yapılmış olur. Takdir edersiniz ki bu kadar emekten sonra "çamur" yapma hakkım olur... Img-grin

Saygılar...
.rar NzIsleviKullanimi.rar (Dosya Boyutu: 35,36 KB | İndirme Sayısı: 868)
NZ Fonksiyonunun (İşlevinin) Ayrıntılı Anlatımı İçin Tıklayın...
DSum ve Sum Fonksiyonunun (İşlevinin) Ayrıntılı Anlatımı İçin Tıklayın...
DLookup Fonksiyonunun (İşlevinin) Ayrıntılı Anlatımı İçin Tıklayın...
Cevapla
#2
Faydalı anlatım için teşekkür ederim bir kodda görmüştüm merak ediyordum bu fonksiyonu
Cevapla
#3
Teşekkürler TdsHarun Hocam..
Kaplumbağa ya dikkat et...
Sadece  başını çıkartıp risk aldığında ilerleyebiliyor...
Cevapla
#4
Çok teşekkür ederim hocam.Bu kadar sade bu kadar güzel anlatım elinize sağlık..10806
Cevapla
#5
harun mükemmel bir iş çıkartmışsın. tebrik ve teşekkürlerimi kabul et kardeşim.
[Resim: image.php?s=df028e861d094075be82dfc55ca1...1225646923][Resim: mousey.gif]
Cevapla
#6
Teşekkür ederim hocam... İltifat ediyorsunuz...

Bu daha başlangıç hocam. Bütün işlevleri teker teker anlatacam Allah nasip ederse...

Sadece örneklendirme safhası biraz uzun sürüyor. Malum, hata yapmamak lazım.

İltifatınız için tekrar teşekkürler...
NZ Fonksiyonunun (İşlevinin) Ayrıntılı Anlatımı İçin Tıklayın...
DSum ve Sum Fonksiyonunun (İşlevinin) Ayrıntılı Anlatımı İçin Tıklayın...
DLookup Fonksiyonunun (İşlevinin) Ayrıntılı Anlatımı İçin Tıklayın...
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task