Bu makalede, Access içindeki ifadelere birçok örnek sağlanır. İfade, hesaplama sonucu tek bir değer veren matematiksel veya mantıksal işleçler, sabitler, işlevler, tablo alanları, denetimler ve özelliklerin bileşiminden oluşur. değerleri hesaplamak, verileri doğrulamak ve varsayılan bir değer ayarlamak için Access ifadeleri kullanabilirsiniz.
Bu makalede
Formlar ve raporlar
Bu bölümdeki tablolarda, form veya raporlarda yer alan denetimler üzerinde değer hesaplayan ifadelere örnekler verilir. Hesaplanan denetim oluşturmak için, denetimin ControlSource özelliğine tablo alanı veya sorgu yerine ifade girmeniz gerekir.
Not: Koşullu biçimlendirmeyle verileri vurgularken de form veya raporda ifadeleri kullanabilirsiniz.
Metin işlemleri
Aşağıdaki tabloda yer alan ifadeler, & (ve işareti) ve + (artı) işleçlerini kullanarak metin dizelerini birleştirir, yerleşik işlevleri kullanarak metin dizelerini denetler veya metin üzerinde başla işlemler gerçekleştirerek, hesaplanan denetim oluşturur.
İfade |
Sonuç |
---|---|
="N/A" |
Yok sözcüğünü görüntüler. |
=[FirstName] & " " & [LastName] |
Ad ve Soyadı adlı tablo alanlarında bulunan değerleri görüntüler. Bu örnekte & işleci; Ad alanı, bir boşluk karakteri (tırnak işareti içinde) ve Soyadı alanını birleştirmek için kullanılmıştır. |
=Left([ProductName], 1) |
Left işlevini kullanarak ÜrünAdı adlı bir alan veya denetimdeki değerin ilk karakterini görüntüler. |
=Right([AssetCode], 2) |
Right işlevini kullanarak VarlıkKodu adlı bir alan veya denetimdeki değerin son 2 karakterini görüntüler. |
=Trim([Address]) |
Trim işlevini kullanarak Adres denetiminin değerini başındaki ve sonundaki boşlukları kaldırarak görüntüler. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
IIf işlevini kullanarak Bölge denetimindeki değer null olduğunda Şehir ve PostaKodu denetimlerine ait değerleri, aksi takdirde Şehir, Bölge ve PostaKodu denetimlerine ait değerleri, boşlukla ayrılmış şekilde görüntüler. |
=[City] & (" " + [Region]) & " " & [PostalCode] |
+ işlecini ve null yaymasını kullanarak, Bölge alanı veya denetimindeki değer null olduğunda Şehir ve PostaKodu denetimlerine ait değerleri, aksi takdirde Şehir, Bölge ve PostaKodu alan veya denetimlerine ait değerleri, boşlukla ayrılmış şekilde görüntüler. Null yayması, ifadenin herhangi bir bileşeni null olduğunda tüm ifadenin de null olması anlamına gelir. + işleci null yaymasını destekler, & işleci ise desteklemez. |
Üst bilgiler ve alt bilgiler
Form ve raporlarda sayfa numaralarını görüntülemek veya yazdırmak için Sayfa ve Sayfalar özellikleri kullanılır. Sayfa ve Sayfalar özellikleri yalnızca yazdırma veya yazdırma önizlemesi sırasında kullanılabilir, bu nedenle form veya raporun özellik sayfasında bu özellikler görüntülenmez. Bu özellikler genellikle, form veya raporun üst bilgi ya da alt bilgi bölümüne bir metin kutusu yerleştirildikten sonra aşağıdaki tabloda gösterilenler gibi bir ifade kullanılarak uygulanır.
Form ve raporlarda üst bilgi ve alt bilgi kullanımı hakkında daha fazla bilgi için Form veya rapora sayfa numarası ekleme makalesine bakın.
İfade |
Sonuç |
---|---|
=[Page] |
1 |
="Page " & [Page] |
Sayfa 1 |
="Page " & [Page] & " of " & [Pages] |
Sayfa 1/3 |
=[Page] & " of " & [Pages] & " Pages" |
1/3 Sayfa |
=[Page] & "/" & [Pages] & " Pages" |
1/3 Sayfa |
=[Country/region] & " - " & [Page] |
Birleşik Krallık - 1 |
=Format([Page], "000") |
001 |
="Printed on: " & Date() |
Yazdırma tarihi: 31/12/17 |
Aritmetik işlemler
İfadeleri kullanarak, iki veya daha fazla alan ya da denetimdeki değerlere toplama, çıkarma, çarpma ve bölme işlemleri uygulayabilirsiniz. İfadeleri, tarihler üzerinde aritmetik işlemler gerçekleştirmek için de kullanabilirsiniz. Örneğin, Tarih/Saat tablosunda GerekliTarih adlı bir alanınız olduğunu varsayalım. Alanda veya alana bağlı bir denetimde kullanıldığında =[RequiredDate] - 2 ifadesi, GerekliTarih alanındaki geçerli değerlerden iki gün öncesine karşılık gelen bir tarih/saat değeri döndürür.
İfade |
Sonuç |
---|---|
=[Subtotal]+[Freight] |
AltToplam ve Navlun alanları veya denetimlerindeki değerlerin toplamı. |
=[RequiredDate]-[ShippedDate] |
GerekliTarih ve SevkiyatTarihi alanları veya denetimlerindeki tarih değerleri arasındaki aralık. |
=[Price]*1.06 |
Fiyat alanı veya denetimindeki değerin 1,06 ile çarpımı (Fiyat değerine yüzde 6 eklenir). |
=[Quantity]*[Price] |
Miktar ve Fiyat alanları veya denetimlerindeki değerlerin çarpımı. |
=[EmployeeTotal]/[CountryRegionTotal] |
ÇalışanToplamı ve ÜlkeBölgeToplamı alanları veya denetimlerindeki değerlerin birbirine oranı. |
Not: İfadede aritmetik işleç (+, -, * ve /) kullandığınızda, ifadedeki denetimlerden birinin değeri null ise tüm ifadenin sonucu null olur. Buna, Null yayması adı verilir. İfadede kullandığınız denetimlerden birindeki herhangi bir kaydın null değere sahip olma olasılığı varsa, Null yaymasından kaçınmak için Nz işlevini kullanarak null değerini sıfıra dönüştürebilirsiniz. Örneğin, =Nz([Subtotal])+Nz([Freight]).
Diğer denetimlerdeki değerler
Bazı durumlarda, farklı konumda bulunan bir değer (başka bir form veya rapordaki bir alan veya denetim gibi) kullanmanız gerekebilir. Başka bir alan veya denetimdeki değeri döndürmek için bir ifade kullanabilirsiniz.
Aşağıdaki tabloda, formlardaki hesaplanan denetimlerde kullanabileceğiniz ifade örnekleri listelenir.
İfade |
Sonuç |
---|---|
=Forms![Orders]![OrderID] |
Siparişler formundaki SiparişKimliği denetiminin değeri. |
=Forms![Orders]![Orders Subform].Form![OrderSubtotal] |
Siparişler formundaki Siparişler Alt Formu adlı alt formda bulunan SiparişAltToplamı denetiminin değeri. |
=Forms![Orders]![Orders Subform]![ProductID].Column(2) |
Siparişler formundaki Siparişler Alt Formu adlı alt formda bulunan çok sütunlu bir liste kutusu olan ÜrünKimliği’nde, üçüncü sütunun değeri. (İlk sütun 0 ile, ikinci sütun 1 ile gösterilir ve numaralandırma bu sıralamaya göre devam eder.) |
=Forms![Orders]![Orders Subform]![Price] * 1.06 |
Siparişler formundaki Siparişler Alt Formu adlı alt formda bulunan Fiyat denetimine ait değerin 1,06 ile çarpımı (Fiyat denetimine yüzde 6 eklenir). |
=Parent![OrderID] |
Geçerli alt formun üst formu veya ana formundaki SiparişKimliği denetiminin değeri. |
Aşağıdaki tabloda bulunan ifadeler, raporlarda hesaplanan denetimleri kullanmanın yollarını gösterir. İfadeler, Rapor Özelliğine başvurur.
İfade |
Sonuç |
---|---|
=Report![Invoice]![OrderID] |
"Fatura" adlı bir rapordaki "SiparişKimliği" adlı denetimin değeri. |
=Report![Summary]![Summary Subreport]![SalesTotal] |
Özet raporundaki Özet Alt Raporu adlı alt raporda bulunan SatışToplamı denetiminin değeri. |
=Parent![OrderID] |
Geçerli alt raporun üst raporu veya ana raporundaki SiparişKimliği denetiminin değeri. |
Değerleri sayma, toplama ve değerlerin ortalamalarını alma
Bir veya daha fazla alan veya denetime yönelik değerleri hesaplamak için, toplama işlevi adı verilen işlev türünü kullanabilirsiniz. Örneğin, rapordaki grup alt bilgisi için grup toplamını veya formdaki kalemle için sipariş alt toplamını hesaplayabilirsiniz. Ayrıca, bir veya daha fazla alandaki öğeleri sayabilir veya ortalama bir değer hesaplayabilirsiniz.
Aşağıdaki tabloda bulunan ifadeler, Avg, Count ve Sum gibi işlevleri kullanmanın yollarını gösterir.
İfade |
Açıklama |
---|---|
=Avg([Freight]) |
Avg işlevini kullanarak "Navlun" adlı bir tablo alanı veya denetiminin değerlerinin ortalamasını görüntüler. |
=Count([OrderID]) |
Count işlevini kullanarak SiparişKimliği denetimindeki kayıtların sayısını görüntüler. |
=Sum([Sales]) |
Sum işlevini kullanarak Satış denetiminin değerlerinin toplamını görüntüler. |
=Sum([Quantity]*[Price]) |
Sum işlevini kullanarak Miktar ve Fiyat denetimlerindeki değerlerin çarpımının toplamını görüntüler. |
=[Sales]/Sum([Sales])*100 |
Satış denetiminin değerinin, Satış denetimine ait tüm değerlerin toplamına bölünmesiyle hesaplanan Satış yüzdesini görüntüler. Denetimin Format özelliğini Yüzde olarak ayarlarsanız ifadeye *100 kısmını dahil etmeyin. |
Toplama işlevlerinin kullanımı ile alan ve sütunlardaki değerlerin toplanması hakkında daha fazla bilgi için Verileri sorgu kullanarak toplama, Verileri sorgu kullanarak sayma, Toplamlar satırını kullanarak veri sayfasında sütun toplamlarını görüntüleme ve Veri sayfasında sütun toplamlarını görüntüleme makalelerine bakın.
SQL toplama işlevleri
Değerleri seçmeli olarak toplamanız veya saymanız gerektiğinde, SQL veya etki alanı toplama işlevi adı verilen bir işlev türü kullanmanız gerekir. "Etki alanı", bir veya birden çok tablodaki bir veya daha fazla alandan oluşabileceği gibi, bir veya birden çok form ya da rapordaki bir veya daha fazla denetimden de oluşabilir. Örneğin, bir tablo alanındaki değerleri, bir formda yer alan denetimdeki değerlerle eşleştirebilirsiniz.
İfade |
Açıklama |
---|---|
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms("Suppliers")("[SupplierID]")) |
Tedarikçiler tablosundaki TedarikçiKimliği alanının değeri ile Tedarikçiler formundaki TedarikçiKimliği denetiminin değeri eşleştiğinde Tedarikçiler tablosunda İlgiliKişiAdı alanının değerini döndürmek için DLookup işlevini kullanır. |
=DLookup("[ContactName]", "[Suppliers]", "[SupplierID] = " & Forms![New Suppliers]![SupplierID]) |
Tedarikçiler tablosundaki TedarikçiKimliği alanının değeri ile Yeni Tedarikçiler formundaki TedarikçiKimliği denetiminin değeri eşleştiğinde Tedarikçiler tablosunda İlgiliKişiAdı alanının değerini döndürmek için DLookup işlevini kullanır. |
=DSum("[OrderAmount]", "[Orders]", "[CustomerID] = 'RATTC'") |
DSum işlevini kullanarak Siparişler tablosunda MüşteriKimliği değeri RATTC olduğunda SiparişTutarı alanında yer alan değerlerin toplamını döndürür. |
=DCount("[Retired]","[Assets]","[Retired]=Yes") |
DCount işlevini kullanarak Varlıklar tablosundaki Kullanımdan Kaldırıldı alanında (Evet/Hayır alanı) yer alan Evet değerlerinin sayısını döndürür. |
Tarih işlemleri
Tarih ve saatlerin izlenmesi, temel bir veritabanı etkinliğidir. Örneğin, fatura tarihinden alacak hesaplarınızın vadesinin dolacağı tarihe kadar geçen süreyi hesaplayabilirsiniz. Tarih ve saatleri, aşağıdaki tabloda gösterildiği gibi çeşitli yöntemlerle biçimlendirebilirsiniz.
İfade |
Açıklama |
---|---|
=Date() |
Date işlevini kullanarak, geçerli tarihi mm-dd-yy biçiminde görüntüler. Burada mm ayı (1 ile 12 arasında), dd günü (1 ile 31 arasında) ve yy yılın son iki basamağını (1980’den 2099’a kadar) temsil eder. |
=Format(Now(), "ww") |
Format işlevini kullanarak geçerli tarihin yılın kaçıncı haftası olduğunu görüntüler. Burada ww, 1 ile 53 arasındaki hafta sayılarını temsil eder. |
=DatePart("yyyy", [OrderDate]) |
DatePart işlevini kullanarak SiparişTarihi denetiminin değerine ait dört basamaklı yılı görüntüler. |
=DateAdd("y", -10, [PromisedDate]) |
DateAdd işlevini kullanarak SözVerilenTarih denetiminin değerinden 10 gün önceki tarihi görüntüler. |
=DateDiff("d", [OrderDate], [ShippedDate]) |
DateDiff işlevini kullanarak SiparişTarihi ve SevkiyatTarihi denetimlerinin değerleri arasındaki gün sayısı farkını görüntüler. |
=[InvoiceDate] + 30 |
Tarihlere aritmetik işlemler uygulayarak, FaturaTarihi alan veya denetimindeki tarihten 30 gün sonraki tarihi hesaplar. |
Yalnızca iki değerin koşulları
Aşağıdaki tabloda yer alan örnek ifadeler, IIf işlevini kullanarak olası iki değerden birini döndürür. IIf işlevine üç bağımsız değişken geçirirsiniz: İlk bağımsız değişken, True veya False değeri döndürmesi gereken bir ifadedir. İkinci bağımsız değişken, ifade doğruysa döndürülecek olan değer ve üçüncü bağımsız değişken, ifade yanlışsa döndürülecek olan değerdir.
İfade |
Açıklama |
---|---|
=IIf([Confirmed] = "Yes", "Order Confirmed", "Order Not Confirmed") |
IIf (Immediate If) işlevini kullanarak Onaylandı denetiminin değeri Yes ise "Sipariş Onaylandı" iletisini, aksi takdirde "Order Not Confirmed." iletisini görüntüler. |
=IIf(IsNull([Country/region]), " ", [Country]) |
IIf ve IsNull işlevlerini kullanarak Ülke/bölge denetiminin değeri null olduğunda boş bir dize, null olmadığında ise Ülke/bölge denetiminin değerini görüntüler. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
IIf ve IsNull işlevlerini kullanarak Bölge denetimindeki değer null olduğunda Şehir ve PostaKodu denetimlerine ait değerleri, aksi takdirde Şehir, Bölge ve PostaKodu alan veya denetimlerine ait değerleri görüntüler. |
=IIf(IsNull([RequiredDate]) Or IsNull([ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
IIf ve IsNull işlevlerini kullanarak, GerekliTarih’ten SevkiyatTarihi’ni çıkarma işleminin sonucu null olduğunda "Eksik tarih olup olmadığını denetleyin" iletisini, aksi takdirde GerekliTarih ve SevkiyatTarihi denetimlerinin tarih değerleri arasındaki aralığı görüntüler. |
Sorgular ve filtreler
Bu bölüm, sorgularda hesaplanan alan oluşturmak veya bir sorguya ölçüt sağlamak için kullanılabilecek ifade örnekleri içerir. Hesaplanan alan, sorguda bir ifade sonucu oluşturulan sütundur. Örneğin, bir değer hesaplayabilir, ad ve soyadı gibi metin değerlerini birleştirebilir veya bir tarihin bir bölümünü biçimlendirebilirsiniz.
Sorgularda, çalışacağınız kayıt sayısını sınırlamak için ölçütleri kullanabilirsiniz. Örneğin, Between işlecini kullanarak başlangıç ve bitiş tarihi girebilir ve böylece sorgunuzun sonuçlarını bu tarihler arasında sevk edilen siparişlerle sınırlayabilirsiniz.
Aşağıda sorgularda kullanılacak ifade örnekleri verilmiştir.
Metin işlemleri
Aşağıdaki tabloda yer alan ifadeler, & ve + işleçlerini kullanarak metin dizelerini birleştirir, yerleşik işlevleri kullanarak metin dizeleri üzerinde işlem yapar veya metin üzerinde başka işlemler gerçekleştirerek, hesaplanan bir alan oluşturur.
İfade |
Açıklama |
---|---|
FullName: [FirstName] & " " & [LastName] |
Ad ve Soyadı alanlarındaki değerleri aralarında bir boşlukla görüntüleyen, TamAd adlı bir alan oluşturur. |
Address2: [City] & " " & [Region] & " " & [PostalCode] |
Şehir, Bölge ve PostaKodu alanlarındaki değerleri aralarında birer boşlukla görüntüleyen, Adres2 adlı bir alan oluşturur. |
ProductInitial: Left([ProductName], 1) |
ÜrünBaşHarfi adlı bir alan oluşturur ve Left işlevini kullanarak ÜrünAdı alanındaki değerin ilk karakterini ÜrünBaşHarfi alanında görüntüler. |
TypeCode: Right([AssetCode], 2) |
TürKodu adlı bir alan oluşturur ve Right işlevini kullanarak VarlıkKodu alanındaki değerlerin son iki karakterini görüntüler. |
AreaCode: Mid([Phone],2,3) |
AlanKodu adlı bir alan oluşturur ve Mid işlevini kullanarak Telefon alanındaki değerin, ikinci karakterden başlayarak üç karakterini görüntüler. |
ExtendedPrice: CCur([Order Details].[Unit Price]*[Quantity]*(1-[Discount])/100)*100 |
GenişletilmişFiyat hesaplanan alanını adlandırır ve CCur işlevini kullanarak indirim uygulanmış satır öğesi toplamlarını hesaplar. |
Aritmetik işlemler
İfadeleri kullanarak, iki veya daha fazla alan ya da denetimdeki değerlere toplama, çıkarma, çarpma ve bölme işlemleri uygulayabilirsiniz. Tarihler üzerinde aritmetik işlemler de uygulayabilirsiniz. Örneğin, GerekliTarih adlı bir Tarih/Saat alanınız olduğunu varsayalım. =[RequiredDate] - 2 ifadesi, GerekliTarih alanındaki değerden iki gün öncesine karşılık gelen bir Tarih/Saat değeri döndürür.
İfade |
Açıklama |
---|---|
PrimeFreight: [Freight] * 1.1 |
AnaNavlun adlı bir alan oluşturur ve ardından bu alanda navlun ücretlerini, ücretlerin yüzde 10’una karşılık gelen değerlerle birlikte görüntüler. |
OrderAmount: [Quantity] * [UnitPrice] |
SiparişTutarı adlı bir alan oluşturur ve ardından Miktar ile BirimFiyat alanlarındaki değerlerin çarpımını görüntüler. |
LeadTime: [RequiredDate] - [ShippedDate] |
TeslimatSüresi adlı bir alan oluşturur ve ardından GerekliTarih ile SevkiyatTarihi alanlarındaki değerler arasındaki farkı görüntüler. |
TotalStock: [UnitsInStock]+[UnitsOnOrder] |
ToplamStok adlı bir alan oluşturur ve ardından StoktakiBirimSayısı ile SiparişEdilenBirimSayısı değerlerinin toplamını görüntüler. |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
NavlunYüzdesi adlı bir alan oluşturur ve her alt toplamdaki navlun ücretlerinin yüzdesini görüntüler. Bu ifade, Sum işlevini kullanarak navlun alanındaki değerleri toplar ve bu toplamı AltToplam alanındaki değerlerin toplamına böler. Tasarım kılavuzunda Toplam satırını kullanmanız gerekeceğinden, bu ifadeyi kullanabilmek için seçtiğiniz sorguyu Toplamlar sorgusuna dönüştürmeniz ve bu alan için Toplam hücresini İfade olarak ayarlamanız gerekir. Toplamlar sorgusu oluşturma hakkında daha fazla bilgi için Verileri sorgu kullanarak toplama makalesine bakın. Alanın Format özelliğini Yüzde olarak ayarlarsanız *100 kısmını dahil etmeyin. |
Toplama işlevlerinin kullanımı ile alan ve sütunlardaki değerlerin toplanması hakkında daha fazla bilgi için Verileri sorgu kullanarak toplama, Verileri sorgu kullanarak sayma, Toplamlar satırını kullanarak veri sayfasında sütun toplamlarını görüntüleme ve Veri sayfasında sütun toplamlarını görüntüleme makalelerine bakın.
Tarih işlemleri
Veritabanlarının büyük çoğunluğu, tarih ve saatleri depolar ve izler. Access’te tarih ve saatlerle çalışmak için, tablolardaki tarih ve saat alanlarını Tarih/Saat veri türüne ayarlamanız gerekir. Access, tarihler üzerinde aritmetik hesaplamalar gerçekleştirebilir. Örneğin, fatura tarihinden alacak hesaplarınızın vadesinin dolacağı tarihe kadar geçen süreyi hesaplayabilirsiniz.
İfade |
Açıklama |
---|---|
LagTime: DateDiff("d", [OrderDate], [ShippedDate]) |
GecikmeSüresi adlı bir alan oluşturur ve DateDiff işlevini kullanarak sipariş tarihi ve sevkiyat tarihi arasındaki gün sayısını görüntüler. |
YearHired: DatePart("yyyy",[HireDate]) |
İşeAlındığıYıl adlı bir alan oluşturur ve ardından DatePart işlevini kullanarak her çalışanın işe alındığı yılı görüntüler. |
MinusThirty: Date( )- 30 |
EksiOtuz adlı bir alan oluşturur ve Date işlevini kullanarak, geçerli tarihten 30 gün önceki tarihi görüntüler. |
SQL toplama işlevleri
Aşağıdaki tabloda yer alan ifadeler, verileri toplayan veya özetleyen SQL (Yapılandırılmış Sorgu Dili) işlevlerini kullanır. Bu işlevler (örneğin Sum, Count ve Avg) genellikle toplama işlevleri olarak adlandırılır.
Access, toplama işlevlerine ek olarak, değerleri seçmeli olarak saymak veya toplamak için kullanılan "etki alanı" toplama işlevleri de sağlar. Örneğin, yalnızca belirli bir aralıktaki değerleri sayabilir veya başka bir tablodaki bir değeri arayabilirsiniz. Etki alanı kümesel işlevleri şunları içerir: DSum İşlevi, DCount İşlevi ve DAvg İşlevi.
Toplamları hesaplamak için genellikle toplamlar sorgusu oluşturmanız gerekir. Örneğin, verileri gruba göre özetlemek için Toplamlar sorgusu kullanmanız gerekir. Sorgu tasarımı kılavuzundan bir Toplamlar sorgusunu etkinleştirmek için Görünüm menüsünde Toplamlar’a tıklayın.
İfade |
Açıklama |
---|---|
RowCount: Count(*) |
SatırSayısı adlı bir alan oluşturur ve Count işlevini kullanarak, null (boş) alanlara sahip kayıtlar da dahil olmak üzere sorgudaki kayıtların sayısını hesaplar. |
FreightPercentage: Sum([Freight])/Sum([Subtotal]) *100 |
NavlunYüzdesi adlı bir alan oluşturur ve Navlun alanındaki değerlerin toplamını AltToplam alanındaki değerlerin toplamına bölerek her alt toplamdaki navlun ücretlerinin yüzdesini hesaplar. (Bu örnekte Sum işlevi kullanılmıştır.) Bu ifadeyi Toplamlar sorgusuyla kullanmanız gerekir. Alanın Format özelliğini Yüzde olarak ayarlarsanız *100 kısmını dahil etmeyin. Toplamlar sorgusu oluşturma hakkında daha fazla bilgi için Verileri sorgu kullanarak toplama makalesine bakın. |
AverageFreight: DAvg("[Freight]", "[Orders]") |
OrtalamaNavlun adlı bir alan oluşturur ve DAvg işlevini kullanarak Toplamlar sorgusunda birleştirilmek üzere tüm siparişlerdeki ortalama navlunu hesaplar. |
Eksik verileri olan alanlar
Burada gösterilen ifadeler, null (bilinmeyen veya tanımlanmamış) değerler içeren alanlar gibi olası eksik bilgileri bulunan alanlar ile çalışır. Yeni bir ürünün bilinmeyen fiyatı veya iş arkadaşınızın siparişe eklemeyi unuttuğu bir değer gibi null değerlerle sık sık karşılaşırsınız. Null değerleri bulup işleme özelliği, veritabanı işlemlerinde önemli katkılar sağlayabilir. Aşağıdaki tabloda yer alan ifadeler, null değerlerle çalışmaya yönelik yaygın yöntemleri gösterir.
İfade |
Açıklama |
---|---|
CurrentCountryRegion: IIf(IsNull([CountryRegion]), " ", [CountryRegion]) |
GeçerliÜlkeBölge adlı bir alan oluşturur ve IIf ile IsNull işlevlerini kullanarak bu alanda, ÜlkeBölge alanında null bir değer varsa boş bir dize, aksi takdirde ÜlkeBölge alanının içeriğini görüntüler. |
LeadTime: IIf(IsNull([RequiredDate] - [ShippedDate]), "Check for a missing date", [RequiredDate] - [ShippedDate]) |
TeslimatSüresi adlı bir alan oluşturur ve IIf ile IsNull işlevlerini kullanarak, GereklilikTarihi ve SevkiyatTarihi alanlarındaki değerlerden herhangi biri null olduğunda "Eksik tarih olup olmadığını denetleyin" iletisini, aksi takdirde tarih farkını görüntüler. |
SixMonthSales: Nz([Qtr1Sales]) + Nz([Qtr2Sales]) |
AltıAylıkDönem adlı bir alan oluşturur ve ilk olarak Nz işlevini kullanıp tüm null değerleri sıfıra dönüştürerek, Çyr1Satışlar ve Çyr2Satışlar alanlarındaki değerlerin toplamını görüntüler. |
Alt sorgularla hesaplanan alanlar
Hesaplanan alan oluşturmak için, alt sorgu olarak da adlandırılan bir iç içe sorgu kullanabilirsiniz. Aşağıdaki tabloda yer alan ifade, alt sorgu sonucu oluşan hesaplanan alanların bir örneğidir.
İfade |
Açıklama |
---|---|
Cat: (SELECT [CategoryName] FROM [Categories] WHERE [Products].[CategoryID]=[Categories].[CategoryID]) |
Kat adlı bir alan oluşturur ve Kategoriler tablosundaki KategoriKimliği ile Ürünler tablosundaki KategoriKimliği aynıysa KategoriAdı değerini görüntüler. |
Metin değerlerini eşleştirme
Bu tablodaki örnek ifadeler, tam veya kısmi metin değerlerini eşleştiren ölçütleri gösterir.
Alan |
İfade |
Açıklama |
---|---|---|
SevkiyatŞehri |
"London" |
Londra’ya sevk edilen siparişleri görüntüler. |
SevkiyatŞehri |
"London" Or "Hedge End" |
Or işlecini kullanarak, Londra’ya veya Hedge End’e sevk edilen siparişleri görüntüler. |
SevkiyatÜlkesiBölgesi |
In("Canada", "UK") |
In işlecini kullanarak, Kanada’ya veya İngiltere’ye sevk edilen siparişleri görüntüler. |
SevkiyatÜlkesiBölgesi |
Not "USA" |
Not işlecini kullanarak, ABD dışındaki ülkelere/bölgelere sevk edilen siparişleri görüntüler. |
ÜrünAdı |
Not Like "C*" |
Not işlecini ve * joker karakterini kullanarak, adları C ile başlamayan ürünleri görüntüler. |
ŞirketAdı |
>="N" |
Adları N ile Z arasındaki harflerle başlayan şirketlere sevk edilen siparişleri görüntüler. |
ÜrünKodu |
Right([ProductCode], 2)="99" |
Right işlevini kullanarak, ÜrünKodu değerleri 99 ile biten siparişleri görüntüler. |
SevkiyatAdı |
Like "S*" |
Adı S harfiyle başlayan müşterilere sevk edilen siparişleri görüntüler. |
Tarih ölçütlerine uyma
Aşağıdaki tabloda yer alan ifadeler, ölçüt ifadelerinde tarihlerin ve ilgili işlevlerin kullanımını gösterir. Tarih değerlerinin girilmesi ve kullanımı hakkında daha fazla bilgi için Tarih veya saat alanını biçimlendirme makalesine bakın.
Alan |
İfade |
Açıklama |
---|---|---|
SevkTarihi |
#2/2/2017# |
2 Şubat 2017’de sevk edilen siparişleri görüntüler. |
SevkTarihi |
Date() |
Bugün sevk edilen siparişleri görüntüler. |
İstenenTarih |
Between Date( ) And DateAdd("m", 3, Date( )) |
Between...And işleciyle DateAdd ve Date işlevlerini kullanarak, bugünün tarihi ile bugünün tarihinden üç ay sonrası arasındaki dönem için gereken siparişleri görüntüler. |
SiparişTarihi |
< Date( ) - 30 |
Date işlevini kullanarak, 30 günden daha eski olan siparişleri görüntüler. |
SiparişTarihi |
Year([OrderDate])=2017 |
Year işlevini kullanarak, sipariş tarihi 2017’de olan siparişleri görüntüler. |
SiparişTarihi |
DatePart("q", [OrderDate])=4 |
DatePart işlevini kullanarak, takvimin dördüncü üç aylık dönemine ait siparişleri görüntüler. |
SiparişTarihi |
DateSerial(Year ([OrderDate]), Month([OrderDate])+1, 1)-1 |
DateSerial, Year ve Month işlevlerini kullanarak, her ayın son gününe ait siparişleri görüntüler. |
SiparişTarihi |
Year([OrderDate])= Year(Now()) And Month([OrderDate])= Month(Now()) |
Year ve Month işlevleri ile And işlecini kullanarak geçerli yıl ve aya ait siparişleri görüntüler. |
SevkTarihi |
Between #1/5/2017# And #1/10/2017# |
Between...And işlecini kullanarak 5 Ocak 2017’den sonra ve 10 Ocak 2017'den önce sevk edilen siparişleri görüntüler. |
İstenenTarih |
Between Date( ) And DateAdd("M", 3, Date( )) |
Between...And işlecini kullanarak bugünün tarihi ile bugünün tarihinden üç ay sonrası arasındaki dönemde gereken siparişleri görüntüler. |
DoğumTarihi |
Month([BirthDate])=Month(Date()) |
Month ve Date işlevlerini kullanarak doğum günü bu ay olan çalışanları görüntüler. |
Eksik verileri bulma
Aşağıdaki tabloda yer alan ifadeler, olası eksik bilgileri bulunan alanlarla çalışır. Bu alanlar, null değer veya sıfır uzunluklu dize içerebilir. Null değer, bilginin mevcut olmadığı anlamına gelir. Sıfırı veya herhangi bir değeri temsil etmez. Eksik bilgi kavramı, veritabanının bütünlüğü açısından çok önemli olduğundan Access tarafından desteklenir. Gerçek dünyada bilgiler, geçici olarak da olsa sık sık eksik kalır (yeni bir ürünün henüz belirlenmemiş olan fiyatı gibi). Bu nedenle, bir işletme gibi gerçek dünyaya ait bir varlığı temsil eden veritabanlarının, bilgiyi eksik olarak kaydedebilmesi gerekir. IsNull işlevini kullanarak bir alan veya denetimin null değer içerip içermediğini belirleyebilir ve Nz işlevini kullanarak null değeri sıfıra dönüştürebilirsiniz.
Alan |
İfade |
Açıklama |
---|---|---|
SevkiyatBölgesi |
Is Null |
SevkiyatBölgesi alanı null (eksik) olan müşterilerin siparişlerini görüntüler. |
SevkiyatBölgesi |
Is Not Null |
SevkiyatBölgesi alanı değer içeren müşterilerin siparişlerini görüntüler. |
Faks |
"" |
Faks makinesi olmayan müşterilerin siparişlerini görüntüler. Faks makinesinin yokluğu, Faks alanında null (eksik) değer yerine sıfır uzunluklu dize değeri tarafından gösterilmiştir. |
Like ile kayıt düzenlerini eşleştirme
Belirli bir düzene uyan satırları eşleştirmeye çalıştığınız durumlarda Like işleci büyük bir esneklik sağlar, çünkü Like işlecini joker karakterlerle kullanabilir ve Access’in eşleştireceği düzenler tanımlayabilirsiniz. Örneğin, * (yıldız) joker karakteri tüm türlerden bir dizi karakterle eşleşir ve belirli bir harfle başlayan adların hepsini bulmayı kolaylaştırır. Örneğin, S harfiyle başlayan tüm adları bulmak için Like "S*" ifadesini kullanırsınız. Daha fazla bilgi için Like İşleci makalesine bakın.
Alan |
İfade |
Açıklama |
---|---|---|
SevkiyatAdı |
Like "S*" |
SevkiyatAdı alanındaki S harfi ile başlayan tüm kayıtları bulur. |
SevkiyatAdı |
Like "*Imports" |
SevkiyatAdı alanındaki "İthalat" kelimesi ile biten tüm kayıtları bulur. |
SevkiyatAdı |
Like "[A-D]*" |
SevkiyatAdı alanındaki A, B, C veya D harfi ile başlayan tüm kayıtları bulur. |
SevkiyatAdı |
Like "*ar*" |
SevkiyatAdı alanındaki "ar" harf dizisini içeren tüm kayıtları bulur. |
SevkiyatAdı |
Like "Ahmet Özgü?" |
SevkiyatAdı alanındaki değerinin ilk kısmı "Ahmet" olan ve ilk dört harfi "Özgü" olup son harfi bilinmeyen beş harfli bir dize içeren tüm kayıtları bulur. |
SevkiyatAdı |
Not Like "A*" |
SevkiyatAdı alanındaki A harfi ile başlamayan tüm kayıtları bulur. |
Satırları SQL toplamalarıyla eşleştirme
Değerlerin seçmeli olarak toplanması, sayılması veya ortalamalarının alınması gerektiğinde, bir SQL veya etki alanı toplama işlevi kullanılır. Örneğin, yalnızca belirli bir aralıkta yer alan veya değerlendirmelerinin sonucu Evet olan değerleri saymak isteyebilirsiniz. Başka bir zamanda da farklı bir tablodan değer arayıp görüntülemeye gerek duyabilirsiniz. Aşağıdaki tabloda yer alan örnek ifadeler, etki alanı kümesel işlevlerini kullanarak bir değer kümesi üzerinde bir hesaplama gerçekleştirip sonucu sorgu ölçütleri olarak kullanılır.
Alan |
İfade |
Açıklama |
---|---|---|
Navlun |
> (DStDev("[Freight]", "Orders") + DAvg("[Freight]", "Orders")) |
DStDev ve DAvg işlevlerini kullanarak navlun maliyetine ilişkin ortalama değer ile standart sapma toplamından daha yüksek navlun maliyeti bulunan tüm siparişleri görüntüler. |
Miktar |
> DAvg("[Quantity]", "[Order Details]") |
DAvg işlevini kullanarak ortalama sipariş miktarının üzerinde bir miktarda sipariş edilmiş ürünleri görüntüler. |
Alanları alt sorgularla eşleştirme
Ölçüt olarak kullanılacak değeri hesaplamak için iç içe sorgu olarak da adlandırılan bir alt sorgu kullanılır. Aşağıdaki tabloda yer alan örnek ifadeler, bir alt sorgu tarafından döndürülen sonuçlara dayalı olarak satır eşleştirmesi yapar.
Alan |
İfade |
Görüntülenen |
---|---|---|
BirimFiyat |
(SELECT [UnitPrice] FROM [Products] WHERE [ProductName] = "Aniseed Syrup") |
Fiyatı, Anason Şurubu fiyatına eşit olan ürünler. |
BirimFiyat |
>(SELECT AVG([UnitPrice]) FROM [Products]) |
Birim fiyatı, ortalamanın üzerinde olan ürünler. |
Maaş |
> ALL (SELECT [Salary] FROM [Employees] WHERE ([Title] LIKE "*Manager*") OR ([Title] LIKE "*Vice President*")) |
Maaşı, iş unvanında "Yönetici" veya "Başkan Yardımcısı" geçen tüm çalışanların maaşlarından daha yüksek olan satış temsilcilerinin hepsinin maaşları. |
SiparişToplamı: [BirimFiyat] * [Miktar] |
> (SELECT AVG([UnitPrice] * [Quantity]) FROM [Order Details]) |
Toplamları ortalama sipariş değerinden daha yüksek olan siparişler. |
Güncelleştirme sorguları
Güncelleştirme sorguları, veritabanındaki bir veya birden çok alanda bulunan mevcut verileri değiştirmek için kullanılır. Örneğin, değerleri değiştirebilir veya tamamen silebilirsiniz. Bu tabloda, ifadeleri güncelleştirme sorgularında kullanmanın bazı yöntemleri gösterilmektedir. Bu ifadeler, sorgu tasarımı kılavuzunda güncelleştirmek istenilen alana ilişkin Güncelleştirme Hedefi satırında kullanılır.
Güncelleştirme sorguları oluşturma hakkında daha fazla bilgi için Güncelleştirme sorgusu oluşturma ve çalıştırma makalesine bakın.
Alan |
İfade |
Sonuç |
---|---|---|
Başlık |
"Salesperson" |
Metin değerini Satış Görevlisi olarak değiştirir. |
ProjeBaşlangıcı |
#8/10/17# |
Tarih değerini 10-Ağu-17 olarak değiştirir. |
KullanımdanKaldırıldı |
Yes |
Evet/Hayır alanında, Hayır değerini Evet olarak değiştirir. |
ParçaNumarası |
"PN" & [PartNumber] |
Belirtilen her parça numarasının başına PN ekler. |
KalemToplamı |
[UnitPrice] * [Quantity] |
BirimFiyat ve Miktar çarpımını hesaplar. |
Navlun |
[Freight] * 1.5 |
Navlun ücretlerini yüzde 50 artırır. |
Satışlar |
DSum("[Quantity] * [UnitPrice]", "Order Details", "[ProductID]=" & [ProductID]) |
Geçerli tablodaki ÜrünKimliği değerleri Sipariş Detayları tablosundaki ÜrünKimliği değerleriyle eşleştiğinde, satış toplamını Miktar ve BirimFiyat çarpımına göre güncelleştirir. |
SevkPostaKodu |
Right([ShipPostalCode], 5) |
Sol taraftaki karakterleri keserek en sağdaki beş karakteri bırakır. |
BirimFiyat |
Nz([UnitPrice]) |
BirimFiyat alanındaki null (tanımsız veya bilinmeyen) bir değeri sıfır (0) olarak değiştirir. |
SQL deyimleri
Yapılandırılmış Sorgu Dili (SQL), Access’in kullandığı sorgu dilidir. Sorgu Tasarım görünümünde oluşturduğunuz her sorgu, SQL kullanılarak da ifade edilebilir. Herhangi bir sorgunun SQL deyimini görmek için Görünüm menüsünde SQL Görünümü’ne tıklayın. Aşağıdaki tabloda, bir ifade kullanan örnek SQL deyimleri gösterilir.
İfade kullanan SQL deyimi |
Sonuç |
---|---|
SELECT [FirstName],[LastName] FROM [Employees] WHERE [LastName]="Danseglio"; |
Soyadı Elmas olan çalışanlara ilişkin Ad ve Soyadı alanlarındaki değerleri görüntüler. |
SELECT [ProductID],[ProductName] FROM [Products] WHERE [CategoryID]=Forms![New Products]![CategoryID]; |
Ürünler tablosundaki KategoriKimliği değeri, açık bir Yeni Ürünler formunda belirtilen KategoriKimliği değeriyle eşleşen kayıtlar için Ürünler tablosundaki ÜrünKimliği ve ÜrünAdı alanlarında yer alan değerleri görüntüler. |
SELECT Avg([ExtendedPrice]) AS [Average Extended Price] FROM [Order Details Extended] WHERE [ExtendedPrice]>1000; |
GenişletilmişFiyat alanındaki değerin 1000'den fazla olduğu siparişler için ortalama genişletilmiş fiyatı hesaplar ve Ortalama Genişletilmiş Fiyat adlı bir alanda görüntüler. |
SELECT [CategoryID], Count([ProductID]) AS [CountOfProductID] FROM [Products] GROUP BY [CategoryID] HAVING Count([ProductID])>10; |
10'dan fazla ürün bulunan kategorilerdeki toplam ürün sayısını ÜrünKimliğiSayısı adlı bir alanda görüntüler. |
Tablo ifadeleri
Tablolarda ifade kullanmanın en yaygın iki yolu, bir varsayılan değer atamak ve bir doğrulama kuralı oluşturmaktır.
Alan varsayılan değerleri
Veritabanı tasarlarken, bir alana veya denetime varsayılan değer atamak isteyebilirsiniz. Alanı içeren yeni bir kayıt veya denetimi içeren bir nesne oluşturulduğunda Access, varsayılan değeri sağlar. Aşağıdaki tabloda yer alan ifadeler, bir alan veya denetime ilişkin varsayılan değer örneklerini temsil eder. Denetim tablodaki bir alana bağlıysa ve alanın varsayılan değeri varsa, denetimin varsayılan değeri alanın varsayılan değerine göre öncelikli olur.
Alan |
İfade |
Varsayılan alan değeri |
---|---|---|
Miktar |
1 |
1 |
Bölge |
"MT" |
MT |
Bölge |
"New York, N.Y." |
New York, N.Y. (Değer noktalama işareti içeriyorsa, değeri tırnak içine almanız gerektiğini unutmayın.) |
Faks |
"" |
Null bir değer içermek yerine bu alanın varsayılan olarak boş olması gerektiğini göstermek üzere sıfır uzunluklu bir dize |
Sipariş Tarihi |
Date( ) |
Bugünün tarihi |
SonTarih |
Date() + 60 |
Bugünden 60 gün sonraya denk gelen tarih |
Alan geçerlilik kuralları
İfade kullanarak, bir alana veya denetime yönelik geçerlilik kuralı oluşturabilirsiniz. Böylece Access, alan veya denetime veri girildiğinde kuralın uygulanmasını zorunlu tutar. Geçerlilik kuralı oluşturmak için alan veya denetimin ValidationRule özelliği değiştirilir. Geçerlilik kuralı ihlal edildiğinde Access tarafından görüntülenen metni barındıran ValidationText özelliğini de ayarlayabilirsiniz. ValidationText özelliğini ayarlamazsanız, Access varsayılan bir hata iletisi görüntüler.
Aşağıdaki tablodaki örneklerde, ValidationRule özelliğine ait geçerlilik kuralı ifadeleri ve ValidationText özelliğinin ilişkili metni gösterilir.
ValidationRule özelliği |
ValidationText özelliği |
---|---|
<> 0 |
Lütfen sıfırdan farklı bir değer girin. |
0 Or > 100 |
Değer 0’a eşit veya 100'den büyük olmalıdır. |
Like "K???" |
Değer K harfi ile başlamalı ve dört karakter uzunluğunda olmalıdır. |
< #1/1/2017# |
1/1/2017'den önceki bir tarih girin. |
>= #1/1/2017# And < #1/1/2008# |
Tarih, 2017 yılında olmalıdır. |
Veri doğrulama hakkında daha fazla bilgi için Alandaki verileri doğrulamak için geçerlilik kuralı oluşturma makalesine bakın.
Makro ifadeleri
Bazı durumlarda, bir makroda bulunan bir eylemi veya eylem dizisini yalnızca belirli bir koşul geçerli olduğunda gerçekleştirmek isteyebilirsiniz. Örneğin, ancak Sayaç metin kutusunun değeri 10 olduğunda bir eylemin çalıştırılmasını istediğinizi varsayalım. Koşulu if bloğunda tanımlamak için bir ifade kullanırsınız:
[Counter]=10
ValidationRule özelliğinde olduğu gibi, If bloğundaki ifade bir koşullu ifadedir. True veya False değerine çözümlenmesi gerekir. Eylem, ancak koşul doğru olduğunda gerçekleştirilir.
Eylemi gerçekleştirmek için kullanılacak ifade |
If |
---|---|
[City]="Paris" |
Makronun çalıştırıldığı formdaki alanda Şehir değeri Paris. |
DCount("[OrderID]", "Orders") > 35 |
Siparişler tablosunun SiparişKimliği alanında 35'den fazla giriş var. |
DCount("*", "[Order Details]", "[OrderID]=" & Forms![Orders]![OrderID]) > 3 |
Sipariş Detayları tablosunda, tablonun SiparişKimliği alanının Siparişler formundaki SiparişKimliği alanıyla eşleştiği üçten fazla giriş var. |
[ShippedDate] Between #2-Feb-2017# And #2-Mar-2017# |
Makronun çalıştırıldığı formdaki SevkiyatTarihi alanının değeri 2-Şub-2017 ile 2-Mar-2017 tarihleri arasında. |
Forms![Products]![UnitsInStock] < 5 |
Ürünler formundaki StoktakiBirimSayısı alanının değeri 5'ten az. |
IsNull([FirstName]) |
Makronun çalıştırıldığı formdaki Ad değeri null (değer yok). Bu ifade, [Ad] Is Null ifadesinin eşdeğeridir. |
[CountryRegion]="UK" And Forms![SalesTotals]![TotalOrds] > 100 |
Makronun çalıştırıldığı formdaki ÜlkeBölge alanının değeri İngiltere ve SatışToplamları formundaki ToplamSiparişler alanının değeri 100’den büyük. |
[CountryRegion] In ("France", "Italy", "Spain") And Len([PostalCode])<>5 |
Makronun çalıştırıldığı formdaki ÜlkeBölge alanının değeri Fransa, İtalya veya İspanya ve posta kodunun uzunluğu 5 karakter değil. |
MsgBox("Confirm changes?",1)=1 |
MsgBox işlevinin görüntülediği iletişim kutusunda Tamam’a tıklayın. İletişim kutusunda İptal’e tıklarsanız Access eylemi yoksayar. |
Ayrıca Bkz:
İfade Oluşturucusu'nu Kullanma