ACCESS İFADELERİ VE FONKSİYONLAR

DLOOKUP

Belirtilen kayıt kümesinden ( etkialanı (etki alanı: Tablo, sorgu veya SQL deyimi tarafından tanımlanan bir kayıt kümesi. Etki alanı toplama fonksiyonları, belirli bir etki alanı veya kayıt kümesi hakkında istatistiksel bilgiler döndürür.)) belirli bir alanın değerini almak için DLookup işlevini kullanabilirsiniz. DLookup işlevini Visual Basic for Applications (VBA) modülünde, makroda (makro: Görevleri otomatikleştirmek için kullanabileceğiniz eylem veya eylem kümesi. Makrolar Visual Basic for Applications programlama dilinde kaydedilir.), sorgu ifadesinde veya form ya da rapor üzerindeki bir hesaplanmış denetimde (hesaplanmış denetim: Form, rapor veya veri erişim sayfasının üzerinde, bir ifadenin sonucunu görüntülemek için kullanılan denetim. İfadenin esas aldığı değerlerden herhangi birinde bir değişiklik olduğunda sonuç her defasında yeniden hesaplanır.) kullanın.

Form veya raporunuzun kayıt kaynağında olmayan bir alanın değerini görüntülemek için DLookup işlevini kullanabilirsiniz. Örneğin, Sipariş Ayrıntıları tablosunu temel alan bir formunuz olsun. Bu form SiparişKimliği, ÜrünKimliği, BirimFiyat, Miktar ve İndirim alanlarını görüntüler. Ancak, ÜrünAdı alanı başka bir tablo olan Ürünler tablosundadır. ÜrünAdı'nı aynı formda görüntülemek için DLookup işlevini bir hesaplanmış denetimde kullanabilirsiniz.

Sözdizimi

DLookup(ifade, etkialanı [, ölçütler] )

DLookup işlevi sözdiziminin aşağıdaki bağımsız değişkenleri vardır:

Bağımsız Değişken

Açıklaması

ifade

Zorunlu. Değerini döndürmek istediğiniz alanı tanımlayan bir ifade. Tablo veya sorgudaki alanı tanımlayan bir dize ifadesi (dize ifadesi: Değerlendirildiğinde bir bitişik karakterler dizisi veren herhangi bir ifade. İfadenin öğeleri şunlar olabilir: bir dize veya dize Değişken (DeğTür 8) döndüren fonksiyonlar; bir dize metni, sabit, değişken veya Değişken.) olabilir veya o alandaki veriler üzerinde hesaplama yapan bir ifade olabilir. İfadeye, tablodaki bir alanın adını, formdaki bir denetimi, bir sabiti veya bir işlevi ekleyebilirsiniz. İfade bir işlev içeriyorsa, yerleşik veya kullanıcı tanımlı olabilir ama başka bir etki alanı toplam işlevi veya SQL toplam işlevi olamaz.

etki alanı

Zorunlu. Etki alanını oluşturan kayıt kümesini tanımlayan bir dize ifadesi. Tablo adı olabileceği gibi parametre gerektirmeyen bir sorgunun sorgu adı da olabilir.

ölçütler

İsteğe bağlı. DLookup işlevinin uygulandığı veri aralığını sınırlandırmada kullanılan bir dize ifadesi. Örneğin, ölçütler çoğunlukla WHERE sözcüğü olmadan bir SQL ifadesindeki WHERE yan tümcesine eşdeğerdir. Ölçütler belirtilmezse, DLookup işlevi ifadeyi tüm etki alanına karşı hesaplar. Ölçütlere eklenen her alanın aynı zamanda etki alanı içindeki bir alan olması gerekir; yoksa DLookup işlevi Boş (Boş: Alana girebileceğiniz veya ifadelerde ve sorgularda eksik veya bilinmeyen verileri belirtmek için kullanabileceğiniz bir değer. Visual Basic'te, Null anahtar sözcüğü Boş değeri belirtir. Birincil anahtar alanları gibi bazı alanlar Boş değerler içeremez.) değer döndürür.

 

Açıklamalar

DLookup işlevi ölçütlerde belirtilen bilgileri temel alan tek bir alan değerini döndürür. Ölçütlerin isteğe bağlı bir bağımsız değişken olmasına karşın, ölçütler için bir değer belirtmezseniz, DLookup işlevi etki alanında rasgele bir değer döndürür.

Hiçbir kayıt ölçütleri karşılamazsa veya etki alanı bir kayıt içermiyorsa, DLookup işlevi Boş döndürür.

Birden çok alan ölçütleri karşılıyorsa, DLookup işlevi ilk örneği döndürür. DLookup işlevinin döndürdüğü alan değerinin benzersiz olmasını sağlayan ölçütler belirtmeniz gerekir. DLookup işlevinin benzersiz bir değer döndürmesini sağlamak için, aşağıdaki örnekteki [Çalışan Kimliği] gibi bir birincil anahtar (birincil anahtar: Değeri veya değerleri, tablodaki her kaydı benzersiz olarak tanımlayan bir veya birden çok alan (sütun). Birincil anahtar, Null (Boş) değerlere izin veremez ve her zaman benzersiz bir dizini olmalıdır. Birincil anahtar, tabloyu diğer tablolardaki yabancı anahtarlarla ilişkilendirmek için kullanılır.) değerini ölçütlerinizde kullanmak isteyebilirsiniz:

Dim varX As Variant

varX = DLookup("[Soyadı]", "Çalışanlar", _

    "[Çalışan Kimliği] = 1")

              

DLookup işlevini ister bir makro veya modülde, isterse bir sorgu ifadesinde ya da hesaplanmış denetimde kullanın, doğru hesaplanacağından emin olmak için ölçütler bağımsız değişkenini dikkatle oluşturmanız gerekir.

Bir sorgunun ölçüt satırında, sorgudaki bir hesaplanmış alan ifadesinde veya bir güncelleştirme sorgusundaki (güncelleştirme sorgusu: Kayıt kümesini belirttiğiniz ölçütlere (arama koşullarına) göre değiştiren bir eylem sorgusu (SQL deyimi).) Güncelleştir satırında ölçütler belirtmek için DLookup işlevini kullanabilirsiniz.

Görüntülemeniz gereken alan form veya raporunuzun temel aldığı kayıt kaynağı değilse, DLookup işlevini ayrıca form veya rapor üzerindeki bir hesaplanmış denetimdeki ifadede de kullanabilirsiniz. Örneğin, ÜrünKimliği alanını görüntüleyen ÜrünKimliği adlı bir metin kutusu olan Sipariş Ayrıntıları tablosunu temel almış bir Sipariş Ayrıntıları formunuz olsun. Metin kutusundaki değeri temel alarak Ürünler tablosundan ÜrünAdı aramak için, başka bir metin kutusu oluşturabilir ve Denetim Kaynağı özelliğini aşağıdaki ifadeye ayarlayabilirsiniz:

=DLookup("[ÜrünAdı]", "Ürünler", "[ÜrünNo] =" & Forms![Sipariş Ayrıntıları]!ÜrünNo)

              

 

İpuçları

 Not   Bu işlevi kullandığınızda, etki alanındaki kayıtlara yapılan kaydedilmemiş değişiklikler eklenmez. DLookup işlevinin değiştirilmiş değerleri temel almasını istiyorsanız, önce Veri sekmesinde Kayıtlar altında Kaydı Kaydet'i tıklatarak, odağı başka bir kayda taşıyarak veya Update (Güncelleştir) yöntemini kullanarak değişiklikleri kaydetmeniz gerekir.

Örnek

 Not   Aşağıdaki örneklerde, bu işlevin Visual Basic for Applications (VBA) modülündeki kullanımı gösterilir. VBA ile çalışma hakkında daha fazla bilgi için, Arama'nın yanındaki açılır listede Geliştirici Başvurusu'nu seçin ve arama kutusuna bir veya birden çok terim girin.

Aşağıdaki örnek, ölçütleri karşılayan kaydın ŞirketAdı alanındaki ad bilgilerini döndürür. Etki alanı Gönderenler tablosudur. Ölçütler bağımsız değişkeni sonuç kayıt kümesini GönderenKimliği 1'e eşit olanlarla sınırlandırır.

Dim varX As Variant

varX = DLookup("[ŞirketAdı]", _

    "Nakliyeciler", "[NakliyeciKimliği] = 1")

              

Gönderenler tablosundan bir sonraki örnek, DLookup işlevine ölçüt sağlamak için GönderenKimliği form denetimini kullanır. Denetime yapılan başvurunun dizeleri gösteren tırnak işaretleri içine alınmadığına dikkat edin. Bu, DLookup işlevi her çağrıldığında, Microsoft Office Access 2007 uygulamasının denetimden geçerli değeri almasını sağlar.

Dim varX As Variant

varX = DLookup("[ŞirketAdı]", "Nakliyeciler", _

    "[NakliyeciKimliği] = " & Formlar!Nakliyeciler!NakliyeciKimliği)

              

Sonraki örnek, değeri almak için intSearch değişkenini kullanır.

Dim intSearch As Integer

Dim varX As Variant

 

intSearch = 1

varX = DLookup("[ŞirketAdı]", "Nakliyeciler", _

    "[NakliyeciKimliği] = " & intSearch)

              

 

 

 

DSUM

DSum işlevini ifadede kullanma  Güncelleştirme sorgusunun Güncelleştir satırında bir etki alanı işlevini (DSum gibi) kullanabilirsiniz. Örneğin, güncel satışları bir Ürünler tablosunda ürüne göre izlemek istediğinizi kabul edelim. Ürünler tablosuna ŞimdiyeDekOlanSatışlar adlı yeni bir alan ekleyip doğru değerleri hesaplamak ve kayıtları güncelleştirmek için bir güncelleştirme sorgusu çalıştırabilirsiniz. Bunu yapmak için, Ürünler tablosunu temel alan yeni bir sorgu oluşturun ve Tasarım sekmesinde, Sorgu Türü grubunda Güncelleştir'i tıklatın. ŞimdiyeDekOlanSatışlar alanını sorgu kılavuzuna ekleyin ve Güncelleştir satırına aşağıdakileri yazın:

DSum("[Miktar]*[BirimFiyat]", "Sipariş Ayrıntıları", _

    "[ÜrünNo] = "& [ÜrünNo])

              

Sorguyu çalıştırdığınızda, Microsoft Office Access 2007 her ürünün toplam satış miktarını Sipariş Ayrıntıları tablosundan aldığı bilgilere göre hesaplar. Her ürünün satış toplamı Ürünler tablosuna eklenir.

DSum işlevini VBA kodunda kullanma  

 Not   Aşağıdaki örneklerde, bu işlevin Visual Basic for Applications (VBA) modülündeki kullanımı gösterilir. VBA ile çalışma hakkında daha fazla bilgi için, Arama'nın yanındaki açılır listede Geliştirici Başvurusu'nu seçin ve arama kutusuna bir veya birden çok terim girin.

Aşağıdaki örnek, İngiltere'ye gönderilen siparişlerin Navlun alanındaki değerleri toplar. Etki alanı bir Siparişler tablosudur. Ölçütler bağımsız değişkeni, sonuç kayıt kümesini GönderenÜlkeBölge değeri İngiltere'ye eşit olanlarla sınırlandırır.

Dim curX As Currency

curX = DSum("[Nakliye]", "Siparişler", _

    "[SevkÜlkeBölge] = 'İngiltere'")

              

Sonraki örnek, iki ayrı ölçütü kullanarak toplamı hesaplar. Dizeler birleştirildiğinde dize hazır bilgisi tek tırnak işaretleri içinde ve tarih de sayı işaretleri içinde kalacak şekilde, dize ifadesine tek tırnak işaretlerinin (') ve sayı işaretlerinin (#) eklendiğine dikkat edin.

 

Dim curX As Currency

curX = DSum("[Nakliye]", "Siparişler", _

    "[SevkÜlkeBölge] = 'İngiltere' AND _

    [SevkTarihi] > #1-1-95#")

              

 

 

 

DCOUNT

Değerlerini bilmeniz gerekmeden etki alanındaki kayıtların sayısını hesaplamak için DCount işlevini kullanın. İfade bağımsız değişkeninin alan üzerinde bir hesaplama gerçekleştirebilmesine karşın, DCount işlevi yalnızca kayıt sayısını hesaplar. İfade ile gerçekleştirilen herhangi bir hesaplamanın değeri kullanılamaz.

İşlevin uygulandığı veri aralığını sınırlandırmak üzere ölçütler belirtmeniz gerektiğinde DCount işlevini hesaplanmış bir denetimde kullanın. Örneğin, California'ya gönderilecek sipariş sayısını görüntülemek için, metin kutusunun Denetim Kaynağı özelliğini aşağıdaki ifadeye ayarlayın:

=DCount("[SiparişNo]", "Siparişler", "[SevkBölgesi] = 'CA'")

              

Herhangi bir sınırlama belirtmeden yalnızca etki alanındaki tüm kayıtları saymak istiyorsanız, Count işlevini kullanın.

İpucu

Count işlevi, sorgulardaki kayıtları hızlı saymak üzere iyileştirilmiştir. Sorgu ifadesinde DCount işlevi yerine Count işlevini kullanın ve sonuçlar üzerinde herhangi bir sınırlama uygulamak için isteğe bağlı ölçütler ayarlayın. Etki alanındaki kayıtları kod modülü veya makro içerisinden saymanız gerektiğinde veya hesaplanmış bir denetim içinde DCount işlevini kullanın.

Form veya raporunuzun temel aldığı kayıt kaynağında bulunmayan belirli bir alanı içeren kayıtların sayısını saymak için DCount işlevini kullanabilirsiniz. Örneğin, Ürünler tablosunu temel alan bir form üzerindeki hesaplanmış denetimde Siparişler tablosundaki sipariş sayısını görüntüleyebilirsiniz.

DCount işlevi, ifade (*) joker karakteri olmadığı sürece, ifadenin başvurduğu alanda Boş değerler içeren kayıtları saymaz. Yıldız işareti kullanırsanız, DCount işlevi, Boş alan içerenler dahil toplam kayıt sayısını hesaplar. Aşağıdaki örnek Siparişler tablosundaki kayıt sayısını hesaplar.

intX = DCount("*", "Siparişler")

              

Etki alanı birincil anahtarı (birincil anahtar: Değeri veya değerleri, tablodaki her kaydı benzersiz olarak tanımlayan bir veya birden çok alan (sütun). Birincil anahtar, Null (Boş) değerlere izin veremez ve her zaman benzersiz bir dizini olmalıdır. Birincil anahtar, tabloyu diğer tablolardaki yabancı anahtarlarla ilişkilendirmek için kullanılır.) olan bir tabloysa, birincil anahtar alanında hiçbir zaman Boş değeri olmayacağı için ifadeyi birincil anahtar alanına ayarlayarak toplam kayıt sayısını da sayabilirsiniz.

İfade birden çok alanı tanımlıyorsa, ve işlecini (&) veya ekleme işlecini (+) kullanarak alan adlarını bir birleştirme işleciyle ayırın. Alanları ayırmak için ve işlecini kullanırsanız, DCount işlevi listelenen alanların herhangi birindeki veri içeren kayıtların sayısını döndürür. Ekleme işlecini kullanırsanız, DCount işlevi yalnızca listelenen alanların tümünde veri içeren kayıtların sayısını döndürür. Aşağıdaki örnek, her bir işlecin tüm kayıtlarda veri içeren bir alanla (GöndermeAdı) ve hiçbir veri içermeyen bir alanla (GöndermeBölgesi) birlikte kullanıldığı durumdaki etkilerini göstermektedir.

intW = DCount("[SevkAdı]", "Siparişler")

intX = DCount("[SevkBölgesi]", "Siparişler")

intY = DCount("[SevkAdı] + [SevkBölgesi]", "Siparişler")

intZ = DCount("[SevkAdı] & [SevkBölgesi]", "Siparişler")

              

 Not    Dize birleştirme işlemleri için tercih edilen işleç ve işlecidir. Bir ifade aracılığıyla Boş değerlerini doldurmayı özel olarak istemediğiniz sürece, sayısal ekleme dışındaki her tür işlemde ekleme işlecini kullanmaktan kaçınmanız gerekir.

Bu işlevi kullandığınızda, etki alanındaki kayıtlara yapılan kaydedilmemiş değişiklikler eklenmez. DCount işlevinin değiştirilmiş değerleri temel almasını istiyorsanız, önce Veri sekmesinde Kayıtlar altında Kaydı Kaydet'i tıklatarak, odağı başka bir kayda taşıyarak veya Update (Güncelleştir) yöntemini kullanarak değişiklikleri kaydetmeniz gerekir.

Örnek

 Not   Aşağıdaki örneklerde, bu işlevin Visual Basic for Applications (VBA) modülündeki kullanımı gösterilir. VBA ile çalışma hakkında daha fazla bilgi için, Arama'nın yanındaki açılır listede Geliştirici Başvurusu'nu seçin ve arama kutusuna bir veya birden çok terim girin.

Aşağıdaki işlev, belirtilen gönderme tarihinden sonra belirtilen ülkeye gönderilen sipariş sayısını döndürür. Etki alanı bir Siparişler tablosudur.

Public Function OrdersCount _

    (ByVal strCountryRegion As String, _

    ByVal dteShipDate As Date) As Integer

 

    OrdersCount = DCount("[SevkTarihi]", "Siparişler", _

        "[SevkÜlkeBölge] = '" & strCountryRegion & _

        "' AND [SevkTarihi] > #" & dteShipDate & "#")

End Function

 

              

İşlevi çağırmak için, aşağıdaki kod satırını Immediate penceresinde kullanın:

:OrdersCount "İngiltere", #1/1/96#

              

 

 

Metin birleştiren veya uygulayan ifadeler

Aşağıdaki tabloda bulunan ifadeler metin dizelerini birleştirmek için & (ve işareti) ve + (artı) işleçlerini kullanır, bir metin dizesini uygulamak için yerleşik işlevleri kullanır veya hesaplanan denetim oluşturmak için metin üzerinde farklı şekilde çalışır.

İfade

Sonuç

="N/A"

Yok değerini görüntüler.

=[Ad] & " " & [Soyad]

Ad ve Soyad adlı tablo alanlarında bulunan değerleri görüntüler. Bu örnekte, Ad alanını, bir boşluk karakterini (tırnak içinde) ve Soyad alanını birleştirmek için & işleci kullanılır.

=Left([ÜrünAdı], 1)

Left işlevini kullanarak ÜrünAdı denilen bir alan veya denetimin değerinin ilk karakterini görüntüler.

=Right([MalKodu], 2)

Right işlevini kullanarak MalKodu adında bir alan veya denetimdeki değerin ilk 2 karakterini görüntüler.

=Trim([Adres])

Trim işlevini kullanarak, Adres denetiminin değerini, varsa başında ve sonundaki boşlukları kaldırarak görüntüler.

=IIf(IsNull([Bölge]), [Şehir] & " " & [PostaKodu], [Şehir] & " " & [Bölge] & " " & [PostaKodu])

IIf işlevini kullanarak, Bölge denetimindeki değer boş olduğu takdirde Şehir ve PostaKodu denetimlerinin değerlerini görüntüler; tersi durumda, Şehir, Bölge ve PostaKodu denetimlerinin değerlerini boşluklarla ayrılmış olarak görüntüler.

=[Şehir] & (" " + [Bölge]) & " " & [PostaKodu]

+ işlecini ve boş değer yaymayı kullanarak, Bölge alan veya denetimindeki değer boş olduğu takdirde Şehir ve PostaKodu denetimlerinin değerlerini görüntüler; tersi durumda, Şehir, Bölge ve PostaKodu alan veya denetimlerinin değerlerini boşluklarla ayrılmış olarak görüntüler.

Boş değer yayma, bir ifadenin herhangi bir bileşeni boş olursa, ifadenin tümü boş olacak anlamına gelir. + işleci boş değer yaymayı destekler; & işleci desteklemez.

 

 

Üstbilgi ve altbilgilerdeki ifadeler

Form veya raporlarda sayfa numaralarını görüntülemek veya yazdırmak için Sayfa ve Sayfalar özelliklerini kullanırsınız. Sayfa ve Sayfalar özellikleri yalnızca yazdırma veya baskı önizleme sırasında kullanıldığı için, form veya raporun özellik sayfasında görünmezler. Tipik olarak bu özellikleri kullanmak için, form veya raporun üstbilgi veya altbilgi bölümüne bir metin kutusu yerleştirip, aşağıdaki tabloda gösterilenler gibi bir ifade kullanırsınız.

Form ve raporlarda üstbilgi ve altbilgi kullanma konusunda daha fazla bilgi için, Form veya rapora sayfa numaraları ekleme başlıklı makaleye bakın.

İfade

Örnek sonuç

=[Sayfa]

1

="Sayfa " & [Sayfa]

Sayfa 1

="Sayfa " & [Sayfa] & " / " & [Sayfalar]

Sayfa 1 / 3

=[Sayfa] & " / " & [Sayfalar] & " Sayfalar"

1 / 3 Sayfa

=[Sayfa] & "/" & [Sayfalar] & " Sayfalar"

1/3 Sayfa

=[Ülke/bölge] & " - " & [Sayfa]

İngiltere - 1

=Format([Sayfa], "000")

001

="Yazdırma: " & Date()

Yazdırma: 31/12/07

 

Aritmetik işlem yapan ifadeler

İki veya daha fazla alan veya denetimde bulunan değerleri toplamak, çıkarmak, çarpmak ve bölmek için ifadeler kullanabilirsiniz. Ayrıca tarihler üzerinde aritmetik işlemler yapmak için de ifadeler kullanabilirsiniz. Örneğin, İstenenTarih adında bir Tarih/Saat tablo alanınız olduğunu düşünelim. Alanda veya alana bağlı bir denetimde, =[İstenenTarih] - 2 ifadesi, İstenenTarih alanındaki geçerli değerlerden iki gün öncesine eşit bir tarih/saat değeri döndürür.

İfade

Sonuç

=[AltToplam]+[Nakliye]

AltToplam ve Nakliye alanlarının veya denetimlerinin değerlerinin toplamı.

=[İstenenTarih]-[SevkTarihi]

İstenenTarih ve SevkTarihi alan veya denetimlerinin tarih değerleri arasındaki zaman aralığı.

=[Fiyat]*1.06

Fiyat alanı veya denetiminin değeri ile 1,06'nın sonucu (Fiyat değerine yüzde 6 ekleme yapar).

=[Miktar]*[Fiyat]

Miktar ve Fiyat alanlarının veya denetimlerinin değerlerinin sonucu.

[ÇalışanToplamı]/[ÜlkeBölgeToplamı]

ÇalışanToplamı ve ÜlkeBölgeToplamı alanlarının veya denetimlerinin değerlerinin bölümü.

 

 

 

NZ işlevi

 

Not   Bir ifadede aritmetik işleç (+, -, * ve /) kullandığınızda, ifadedeki denetimlerde 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;  örneğin, =Nz([AltToplam])+Nz([Nakliye]).

 

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 özel dönüş değeri döndürmek üzere Nz işlevini kullanın.

Örneğin, Variant varX Boş olduğunda 2 + varX ifadesi her zaman Boş değerini döndürür . Ancak, 2 + Nz(varX) ifadesi 2 döndürür.

Nz işlevini çoğunlukla IIf yerine kullanabilirsiniz. Örneğin, 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, bir değişkenin değerini denetlemek ve Boş ise sıfıra dönüştürmek için kullanılır.

varTemp = IIf(IsNull(varFreight), 0, varFreight)

varResult = IIf(varTemp > 50, "High", "Low")

              

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

varResult = IIf(Nz(varFreight) > 50, "High", "Low")

              

İ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 varFreight değeri Boş ise, dize döndürmek için IIf işlevini kullanır.

varResult = IIf(IsNull(varFreight), _

    "No Freight Charge", varFreight)

              

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

varResult = Nz(varFreight, "No Freight Charge")

              

Örnek

 Not   Aşağıdaki örneklerde, bu işlevin Visual Basic for Applications (VBA) modülündeki kullanımı gösterilir. VBA ile çalışma hakkında daha fazla bilgi için, Arama'nın yanındaki açılır listede Geliştirici Başvurusu'nu seçin ve arama kutusuna bir veya birden çok terim girin.

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.

Public Sub CheckValue()

 

    Dim frm As Form

    Dim ctl As Control

    Dim varResult As Variant

 

    ' Return Form object variable

    ' pointing to Orders form.

    Set frm = Forms!Orders

 

    ' Return Control object variable

    ' pointing to ShipRegion.

    Set ctl = frm!ShipRegion

 

    ' Choose result based on value of control.

    varResult = IIf(Nz(ctl.Value) = vbNullString, _

        "No value.", "Value is " & ctl.Value & ".")

 

    ' Display result.

    MsgBox varResult, vbExclamation

 

End Sub

              

 

 

 

Başka alan veya denetimlerdeki değerlere başvuruda bulunan ifadeler

Bazen, başka bir form veya rapordaki bir alan veya denetim gibi başka bir yerde bulunan bir değere gereksinim duyarsınız. Değeri başka bir alan veya denetimden döndürmek için ifade kullanabilirsiniz.

Aşağıdaki tablo, formlarda hesaplanmış denetimler içinde kullanabileceğiniz ifade örneklerini listelemektedir.

İfade

Sonuç

=Forms![Siparişler]![SiparişNo]

Siparişler formundaki SiparişNo denetiminin değeri.

=Forms![Siparişler]![Siparişler Alt Formu].Form![Sipariş Alttoplamı]

Siparişler formundaki Siparişler Alt Formu adlı alt formdaki SiparişlerAlttoplamı denetiminin değeri.

=Formlar![Siparişler]![Siparişler Alt Formu]![ÜrünNo].Sütun(2)

ÜrünNo içindeki üçüncü sütunun değeri, Siparişler formundaki Siparişler Alt Formu adlı alt formda bulunan çok sütunlu liste kutusu. (0 birinci sütuna, 1 ikinci sütuna karşılık gelir ve diğerleri de böylece devam eder.)

=Formlar![Siparişler]![Siparişler Alt Formu]![Fiyat] * 1.06

Siparişler formundaki Siparişler Alt Formu adlı alt formda bulunan fiyat denetiminin ürün değeri ve 1,06 (Fiyat denetiminin değerine yüzde 6 eklenir).

=Üst Öğe![SiparişNo]

Geçerli alt formun ana veya üst öğe formundaki SiparişNo denetiminin değeri.

Aşağıdaki tabloda yer alan ifadeler, raporlarda hesaplanan denetimler kullanmanın bazı yollarını gösterir. Bu ifadeler Rapor özelliğine başvuruda bulunur.

Bu özellik hakkında daha fazla bilgi için, Rapor Özelliği başlıklı makaleye bakın.

İfade

Sonuç

=Rapor![Fatura]![SiparişNo]

"Fatura" adlı rapordaki "SiparişNo" adlı denetimin değeri.

=Rapor![Özet]![Özet Alt Raporu]![SatışToplamı]

Özet raporda bulunan Özet Alt Raporu adlı alt rapordaki SatışToplamı denetiminin değeri.

=Üst Öğe![SiparişNo]

Geçerli alt raporun ana veya üst öğe raporundaki SiparişNo denetim değeri.

Değerleri saymaya, toplamaya ve ortalamasını almaya yarayan ifadeler

Bir veya daha fazla alan veya denetimin değerlerini hesaplamak için, toplama işlevi adı verilen bir tür işlev kullanabilirsiniz. Örneğin, bir rapordaki grup altbilgisi için bir grup toplamı hesaplayabilir veya bir formdaki öğeler için bir sipariş alt toplamı hesaplayabilirsiniz. Ayrıca bir veya daha fazla alandaki öğelerin sayısını da hesaplayabilir veya bir ortalama değer hesaplayabilirsiniz.

Aşağıdaki tabloda yer alan ifadeler, Avg, Count ve Sum gibi işlevleri kullanmanın bazı yollarını gösterir.

İfade

Açıklaması

=Avg([Nakliye])

Avg işlevini kullanarak, "Nakliye" adlı bir tablo alanının veya denetimin değerlerinin ortalamasını görüntüler.

=Count([SiparişNo])

Count işlevini kullanarak, SiparişNo denetimindeki kayıtların sayısını görüntüler.

=Sum([Satışlar])

Sum işlevini kullanarak Satışlar denetiminin değerlerinin toplamını görüntüler.

=Sum([Miktar]*[Fiyat])

Sum işlevini kullanarak, Miktar ve Fiyat denetimlerinin değerlerinin toplam sonucunu görüntüler.

=[Satışlar]/Sum([Satışlar])*100

Satışlar denetiminin değerinin, Satışlar denetimindeki tüm değerlerin toplamına bölünmesiyle bulunan satış yüzdesini görüntüler.

 Not   Denetimin Biçim özelliğini Yüzde olarak ayarlarsanız, ifadeye *100 koymayın.

Toplama işlevlerini kullanma ve alan ve sütunlardaki değerlerin toplamını hesaplama konusunda daha fazla bilgi için, Sorgu kullanarak veri toplama, Sorgu kullanarak veri sayma, Veri sayfasındaki satırları sayma ve Veri sayfasında sütun toplamlarını görüntüleme başlıklı makalelere bakın.

Etki alanı topluluğu işlevleri kullanarak değerleri seçmeli olarak saymaya, toplamaya ve aramaya yarayan ifadeler

Değerleri seçmeli olarak toplamanız veya saymanız gerektiğinde, etki alanı topluluğu işlevi adı verilen bir işlevi kullanırsınız. "Etki alanı" bir veya daha fazla tablodaki bir veya daha fazla alandan ya da bir veya daha fazla form veya rapordaki bir veya daha fazla denetimden oluşur. Örneğin, bir tablo alanındaki değerleri bir formda bulunan bir denetimdeki değerlerle eşleyebilirsiniz.

İfade

Açıklaması

=DLookup("[KişiAdı]", "[Üreticiler]", "[ÜreticiKimliği] = " & Formlar("Üreticiler")("[ÜreticiKimliği]"))

DLookup işlevini kullanarak, Üreticiler tablosundaki KişiAdı alanının değerini döndürür (burada tablodaki ÜreticiKimliği alanının değeri, Üreticiler formundaki ÜreticiKimliği denetiminin değeriyle eşleşir).

=DLookup("[KişiAdı]", "[Üreticiler]", "[ÜreticiKimliği] = " & Formlar![Yeni Üreticiler]![ÜreticiKimliği])

DLookup işlevini kullanarak, Üreticiler tablosundaki KişiAdı alanının değerini döndürür (burada tablodaki ÜreticiKimliği alanının değeri, Yeni Üreticiler formundaki ÜreticiKimliği denetiminin değeriyle eşleşir).

=DSum("[SiparişTutarı]", "[Siparişler]", "[MüşteriKimliği] = 'RATTC'")

DSum işlevini kullanarak, Siparişler tablosunda bulunan SiparişTutarı alanındaki değerlerin toplamını döndürür (burada, MüşteriKimliği RATTC'dir).

=DCount("[Emekli]","[Varlıklar]","[Emekli]=Evet")

DCount işlevini kullanarak, Varlıklar tablosunda bulunan Emekli alanındaki (Evet/Hayır alanıdır) Evet değerlerinin sayısını döndürür.

Tarihleri işleyen ve hesaplayan ifadeler

Tarih ve saat izleme, en temel veritabanı eylemlerinden biridir. Örneğin, borçlular hesabınıza işlemek için fatura tarihinden itibaren kaç gün geçtiğini hesaplayabilirsiniz. Aşağıdaki tabloda görüldüğü gibi tarih ve saatleri biçimlendirmenizin çeşitli yolları vardır.

İfade

Açıklaması

=Date()

Date işlevini kullanarak, geçerli tarihi gg-aa-yy biçiminde görüntüler; burada aa ayı (1 - 12 arası), gg günü (1 - 31 arası) ve yy yılın son iki basamağını (1980 - 2099 arası) gösterir.

=Format(Now(), "hh")

Format işlevini kullanarak, geçerli tarih için yılın hafta numarasını görüntüler; burada hh 1 - 53 arası haftaları gösterir.

=DatePart("yyyy", [SiparişTarihi])

DatePart işlevini kullanarak, SiparişTarihi denetimindeki değerin dört basamaklı yılını görüntüler.

=DateAdd("y", -10, [TaahhütTarihi])

DateAdd işlevini kullanarak, TaahhütTarihi denetiminin değerinden 10 gün önceki tarihi görüntüler.

=DateDiff("d", [SiparişTarihi], [SevkTarihi])

DateDiff işlevini kullanarak, SiparişTarihi ve SevkTarihi denetimlerinin değerleri arasındaki gün sayısı farkını görüntüler.

=[FaturaTarihi] + 30

Tarihler üzerinde aritmetik işlemler yaparak, FaturaTarihi alanında veya denetiminde bulunan tarihten 30 gün sonraki tarihi hesaplar.

İki olası değerden birini döndüren koşullu ifadeler

Aşağıdaki tabloda yer alan örnek ifadeler, iki olası değerden birini döndürmek için IIf işlevini kullanır. IIf işlevine üç bağımsız değişken geçirirsiniz: İlk bağımsız değişken Doğru veya Yanlış değeri döndürmesi gereken bir ifadedir. İkinci bağımsız değişken, ifade doğru olduğu takdirde döndürülecek olan değer ve üçüncü bağımsız değişkense, ifade yanlış olduğu takdirde döndürülecek olan değerdir.

İfade

Açıklaması

=IIf([Onaylandı] = "Evet", "Sipariş Onaylandı", "Sipariş Onaylanmadı")

IIf (Immediate If) işlevini kullanarak, Onaylandı denetiminin değeri Evet ise "Sipariş Onaylandı" iletisini; tersi durumda "Sipariş Onaylanmadı" iletisini görüntüler.

=IIf(IsNull([Ülke/bölge]), " ", [Ülke])

IIf ve IsNull işlevlerini kullanarak, Ülke/bölge denetiminin değeri boşsa boş bir dize; tersi durumda Ülke/bölge denetimindeki değeri görüntüler.

=IIf(IsNull([Bölge]), [Şehir] & " " & [PostaKodu], [Şehir] & " " & [Bölge] & " " & [PostaKodu])

IIf ve IsNull işlevlerini kullanarak, Bölge denetimindeki değer boş olduğu takdirde Şehir ve PostaKodu denetimlerinin değerlerini görüntüler; tersi durumda, Şehir, Bölge ve PostaKodu alan veya denetimlerinin değerlerini görüntüler.

=IIf(IsNull([İstenenTarih]) Or IsNull([SevkTarihi]), "Eksik bir tarih olup olmadığını kontrol edin", [İstenenTarih] - [SevkTarihi])

IIf ve IsNull işlevlerini kullanarak, İstenenTarih'ten SevkTarihi çıkarıldığında sonuç boş olursa "Eksik bir tarih olup olmadığını kontrol edin" iletisini görüntüler; tersi durumda, İstenenTarih ve SevkTarihi denetimlerinin tarih değerleri arasındaki aralığı görüntüler.

 

 

Sorgular ve filtrelerde kullanılan ifadelere örnekler

Bu bölüm, bir sorguda hesaplanan alan oluşturmak veya bir sorguya ölçüt sağlamak için kullanabileceğiniz ifade örnekleri içermektedir. Hesaplanan alan, bir sorguda bir ifade sonucunda ortaya çıkan sütundur. Örneğin, bir değeri hesaplayabilir, ad ve soyad gibi metin değerlerini birleştirebilir veya bir tarihin bir bölümünü biçimlendirebilirsiniz.

Üzerinde çalışacağınız kayıtları sınırlamak için bir sorguda ölçüt kullanırsınız. Örneğin, başlangıç ve bitiş tarihi vermek ve sorgunuzun sonuçlarını bu tarihler arasında sevk edilen siparişlerle sınırlamak için Between işlecini kullanabilirsiniz.

Aşağıdaki bölümlerde, bir sorguya nasıl hesaplanan alan ekleneceği açıklanmış ve sorgularda kullanılan ifadelere örnekler verilmiştir.

Sorgu Tasarım görünümünde hesaplanan alan ekleme

  • 1. Gezinti Bölmesi'nde, değiştirmek istediğiniz sorguyu sağ tıklatın ve kısayol menüsünden Tasarım Görünümü seçeneğini tıklatın.
  • 2. Hesaplanan alanı oluşturmak istediğiniz sütunda Alan hücresini tıklatın. Alan için bir ad ve ardından iki nokta üst üste yazabilir veya ifadenizi yazabilirsiniz. Ad girmezseniz, Access İfaden: dizisini ekler; burada, n sıralı bir numaradır.
  • 3. İfadenizi yazın.

-veya-

Tasarım sekmesinde, Sorgu Ayarı grubunda, İfade Oluşturucusu'nu başlatmak için Oluşturucu'yu tıklatın.

İfade Oluşturucusu'nu kullanma konusunda daha fazla bilgi için, İfade oluşturma başlıklı makaleye bakın.

Sorgu veya filtrelerde metin işlemeye yarayan ifadeler

Aşağıdaki tabloda bulunan ifadeler metin dizelerini birleştirmek için & ve + işleçlerini kullanır, bir metin dizesi üzerinde işlem yapmak için yerleşik işlevleri kullanır veya hesaplanan alan oluşturmak için metin üzerinde işlem yapar.

İfade

Açıklaması

TamAd: [Ad] & " " & [Soyadı]

Ad ve Soyad alanlarındaki değerleri bir boşlukla ayrılmış olarak görüntüleyen TamAd adında bir alan oluşturur.

Adres2: [Şehir] & " " & [Bölge] & " " & [PostaKodu]

Şehir, Bölge ve PostaKodu alanlarındaki değerleri, boşluklarla ayrılmış olarak görüntüleyen Adres2 adında bir alan oluşturur.

ÜrünBaşHarfi:Left([ÜrünAdı], 1)

ÜrünBaşHarfi adında bir alan oluşturur ve Left işlevini kullanarak, ÜrünBaşHarfi alanında, ÜrünAdı alanındaki değerin ilk karakterini görüntüler.

TürKodu: Right([MalKodu], 2)

TürKodu adında bir alan oluşturur ve Right işlevini kullanarak, MalKodu alanındaki değerlerin son iki karakterini görüntüler.

AlanKodu: Mid([Telefon],2,3)

AlanKodu adında bir alan oluşturur ve Mid işlevini kullanarak, Telefon alanındaki değerin ikinci karakteriyle başlayan üç karakteri görüntüler.

Hesaplanan alanlarda aritmetik işlem yapan ifadeler

İki veya daha fazla alan veya denetimde bulunan değerleri toplamak, çıkarmak, çarpmak ve bölmek için ifadeler kullanabilirsiniz. Ayrıca tarihler üzerinde aritmetik işlemler de yapabilirsiniz. Örneğin, İstenenTarih adında bir Tarih/Saat alanınız olduğunu düşünelim. =[İstenenTarih] - 2 ifadesi, İstenenTarih alanındaki değerden iki gün öncesine eşit bir Tarih/Saat değeri döndürür.

İfade

Açıklaması

BirilcilNakliye: [Nakliye] * 1.1

BirilcilNakliye adında bir alan oluşturur ve bu alanda nakliye ücretlerini yüzde 10 eklenmiş olarak görüntüler.

SiparişMiktarı: [Miktar] * [BirimFiyat]

SiparişMiktarı adında bir alan oluşturur ve Miktar ve BirimFiyat alanlarındaki değerlerin sonucunu görüntüler.

BeklemeSüresi: [İstenenTarih] - [SevkTarihi]

BeklemeSüresi adında bir alan oluşturur ve İstenenTarih ve SevkTarihi alanlarındaki değerler arasındaki farkı görüntüler.

ToplamStok: [StokBirimleri]+[SiparişBirimleri]

ToplamStok adında bir alan oluşturur ve StokBirimleri ve SiparişBirimleri alanlarındaki değerlerin toplamını görüntüler.

NakliyeYüzdesi: Sum([Nakliye])/Sum([AltToplam]) *100

NakliyeYüzdesi adında bir alan oluşturur ve her alt toplamdaki nakliye ücretlerinin yüzdesini görüntüler. Bu ifade Sum işlevini kullanarak Nakliye alanındaki değerleri toplar ve sonra bu toplamları AltToplam alanındaki değerlerin toplamına böler.

Bu ifadeyi kullanmak için, tasarım kılavuzunda Toplam satırını kullanmanız gerektiğinden seçme sorgunuzu bir Toplam sorgusuna dönüştürmeniz ve sonra da bu alanın Toplam hücresini İfade olarak ayarlamanız gerekir.

Toplam sorgusu oluşturma konusunda daha fazla bilgi için, Sorgu kullanarak veri toplama başlıklı makaleye bakın.

Alanın Biçim özelliğini Yüzde olarak ayarlarsanız, *100 koymayın.

Toplama işlevlerini kullanma ve alan ve sütunlardaki değerlerin toplamını hesaplama konusunda daha fazla bilgi için, Sorgu kullanarak veri toplama, Sorgu kullanarak veri sayma, Veri sayfasındaki satırları sayma ve Veri sayfasında sütun toplamlarını görüntüleme başlıklı makalelere bakın.

Hesaplanan alanlarda tarihleri işleyen ve hesaplayan ifadeler

Neredeyse tüm veritabanları tarih ve saatleri saklar ve izler. Access'te tarih ve saatlerle çalışmak için, tablolarınızdaki tarih ve saat alanlarını Tarih/Saat veri türüne ayarlarsınız. Access tarihler üzerinde aritmetik işlemler yapabilir; örneğin, borçlular hesabınıza işlemek için fatura tarihinden itibaren kaç gün geçtiğini hesaplayabilirsiniz.

İfade

Açıklaması

GecikmeSüresi: DateDiff("d", [SiparişTarihi], [SevkTarihi])

GecikmeSüresi adında bir alan oluşturur ve DateDiff işlevini kullanarak, sipariş tarihiyle sevk tarihi arasındaki gün sayısını görüntüler.

İstihdamYılı: DatePart("yyyy",[İşeAlınmaTarihi])

İstihdamYılı adında bir alan oluşturur ve DatePart işlevini kullanarak, her çalışanın işe alındığı yılı görüntüler.

EksiOtuz: Date( )- 30

EksiOtuz adında bir alan oluşturur ve Date işlevini kullanarak, geçerli tarihten 30 gün önceki tarihi görüntüler.

 

SQL topluluğu ve etki alanı topluluğu ve işlevleri kullanarak değerleri saymaya, toplamaya ve ortalamasını almaya yarayan ifadeler

Aşağıdaki tabloda yer alan örnekler veri toplamaya veya özetlemeye yarayan SQL (Yapılandırılmış Sorgu Dili) işlevleri kullanır. Bu işlevlere genellikle (örneğin, Sum, Count ve Avg) toplam işlevleri denildiğini görebilirsiniz.

Toplam işlevlerine ek olarak, Access ayrıca, değerleri seçmeli olarak toplamak veya saymak için kullanabileceğiniz "etki alanı" topluluğu işlevleri de sağlar. Örneğin, yalnızca belirli bir aralıktaki değerleri sayabilir veya başka bir tablodan değer arayabilirsiniz. Etki alanı topluluğu işlevleri DSum İşlevi, DCount İşlevi ve DAvg İşlevi'ni içerir.

Toplamları hesaplamak için, çoğunlukla bir toplam sorgusu oluşturmanız gerekir. Örneğin, gruba göre özetlemek için, bir Toplam sorgusu kullanmanız gerekir. Sorgu tasarım kılavuzundan bir Toplam sorgusunu etkinleştirmek için, Görünüm menüsünde Toplamlar'ı tıklatın.

İfade

Açıklaması

SatırSayısı:Count(*)

SatırSayısı adında bir alan oluşturur ve Count işlevini kullanarak, boş (değer girilmemiş) alanlar dahil olmak üzere sorgudaki kayıtları sayar.

NakliyeYüzdesi: Sum([Nakliye])/Sum([AltToplam]) *100

NakliyeYüzdesi adında bir alan oluşturur ve Nakliye alanındaki değerlerin toplamını AltToplam alanındaki değerlerin toplamına bölerek, her alt toplamdaki nakliye ücretlerinin yüzdesini hesaplar. (Bu örnekte Sum işlevi kullanılmıştır).

 Not   Bu ifadeyi bir Toplam sorgusuyla birlikte kullanmanız gerekir. Alanın Biçim özelliğini Yüzde olarak ayarlarsanız, *100 koymayın.

.

Toplam sorgusu oluşturma konusunda daha fazla bilgi için, Sorgu kullanarak veri toplama başlıklı makaleye bakın.

OrtalamaNakliye: DAvg("[Nakliye]", "[Siparişler]")

OrtalamaNakliye adında bir alan oluşturur ve DAvg işlevini kullanarak, bir Toplam sorgusunda birleştirilmiş olan tüm siparişlerdeki ortalama nakliyeyi hesaplar.

Bilgi eksik olan alanlarla (boş değer içeren alanlar) çalışmaya yarayan ifadeler

Burada gösterilen ifadeler, boş (bilinmeyen veya tanımlanmamış) değer içeren alanlar gibi, eksik bilgi olma olasılığı bulunan alanlarda çalışır. Yeni bir ürünün bilinmeyen fiyatı ya da iş arkadaşınızın siparişe eklemeyi unuttuğu bir değer gibi boş değerlerle sık karşılaşırsınız. Boş değerleri bulup işleme olanağı veritabanı işlemlerinde çok önemli olabilir ve aşağıdaki tabloda yer alan ifadeler boş değerlerle çalışmanın bazı genel yöntemlerini göstermektedir.

İfade

Açıklaması

GeçerliÜlkeBölge:IIf(IsNull([ÜlkeBölge]), " ", [ÜlkeBölge])

GeçerliÜlkeBölge adında bir alan oluşturur ve IIf ve IsNull işlevlerini kullanarak, ÜlkeBölge alanı boş değer içerdiği takdirde oluşturduğu alanda boş bir dize görüntüler; tersi durumda, ÜlkeBölge alanının içeriğini görüntüler.

BeklemeSüresi: IIf(IsNull([İstenenTarih] - [SevkTarihi]), "Eksik bir tarih olup olmadığını kontrol edin", [İstenenTarih] - [SevkTarihi])

BeklemeSüresi adında bir alan oluşturur ve IIf ve IsNull işlevlerini kullanarak, İstenenTarih alanındaki veya SevkTarihi alanındaki değerlerden herhangi biri boş olduğu takdirde "Eksik bir tarih olup olmadığını kontrol edin" iletisini görüntüler; tersi durumda, tarih farkını görüntüler.

AltıAylıkSatışlar: Nz([Üad1Satışlar]) + Nz([Üad2Satışlar])

AltıAylıkSatışlar adında bir alan oluşturur ve önce Nz işleviyle tüm boş değerleri sıfıra dönüştürür ve sonra da Üad1Satışlar ve Üad2Satışlar alanlarındaki değerlerin toplamını görüntüler.

Alt sorgu kullanarak hesaplanan alan oluşturan ifade

Hesaplanan alan oluşturmak için, alt

Yorum Yaz