Bu makalede, Access'teki ifadelere örnekler verilmektedir. İfadeler, matematiksel veya mantıksal işleçleri, sabitleri, işlevleri, tablo alanlarını, denetimleri ve özellikleri tek bir değerde birleştirir. Access'te ifadeleri kullanarak değer hesaplayabilir, veri doğrulayabilir ve varsayılan değerleri ayarlayabilirsiniz.
Bu makalede
Formlar ve raporlar
Sorgular ve filtreler
Tablolar
| Alan varsayılan değerleri | Alan geçerlilik kuralları |
|---|
Makrolar
Formlar ve raporlar
Bu bölümdeki tablolarda, form veya raporda yer alan bir denetimde yer alan değeri hesaplayan ifadeler gösterilir. Hesaplanan denetim oluşturmak için, denetimin özelliğine tablo alanı veya sorgu yerine ifade girin ControlSource .
Not
Bir form veya raporda verileri koşullu biçimlendirmeyle vurgularken de ifadeleri kullanabilirsiniz.
Metin işlemleri
Aşağıdaki tabloda yer alan ifadeler metin dizelerini birleştirmek & , metinle çalışmak üzere yerleşik işlevleri kullanmak veya başka bir şekilde hesaplanan denetim oluşturmak için (ve işareti) + ve (artı) işleçlerini kullanır.
| İ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şleç 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) |
İşlevi Left kullanarak adlı bir alan veya denetimdeki ProductNamedeğerin ilk karakterini görüntüler. |
=Right([AssetCode], 2) |
İşlevi Right kullanarak adlı bir alan veya denetimdeki AssetCodedeğerin son iki karakterini görüntüler. |
=Trim([Address]) |
İşlevi Trim kullanarak baştaki ve sondaki boşlukları kaldırdıktan sonra denetimin Address değerini görüntüler. |
=IIf(IsNull([Region]), [City] & " " & [PostalCode], [City] & " " & [Region] & " " & [PostalCode]) |
İşlevi IIf kullanarak denetim null olduğunda Region ve PostalCode denetimlerinin City değerlerini görüntüler. Aksi takdirde, , Region, ve PostalCode denetimlerinin Citydeğerlerini boşlukla ayrılmış olarak görüntüler. |
=[City] & (" " + [Region]) & " " & [PostalCode] |
İşleci + ve null yaymasını kullanarak, alan veya denetimdeki değer Region null olduğunda ve PostalCode denetimlerinin City değerlerini görüntüler. Aksi takdirde, , Region, ve PostalCode alan veya denetimlerin değerlerini, boşlukla ayrılmış olarak Citygörüntüler. Null yayılması, ifadenin herhangi bir bölümü null olduğunda tüm ifadenin null olması anlamına gelir. İşleç + null yaymasını destekler, ancak & desteklemez. |
Üst bilgiler ve alt bilgiler
Form veya raporlarda Page sayfa numaralarını görüntülemek veya yazdırmak için ve Pages özelliklerini kullanın. Bu özellikler yalnızca yazdırma veya Baskı Önizleme sırasında kullanılabilir, bu nedenle form veya raporun özellik sayfasında görünmezler. Normalde, form veya raporun üst bilgi veya alt bilgi bölümüne bir metin kutusu yerleştirir ve ardından aşağıdaki tabloda gösterilenlere benzer bir ifade kullanırsınız.
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 ifade =[RequiredDate] - 2 , 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ç (+, -, *veya /) kullanırsanız ve denetimlerden biri null ise, tüm ifadenin sonucu null olur. Bu, null yayılması olarak bilinir. Denetimin null değeri varsa, Nz işlevini kullanarak null değerini sıfıra dönüştürerek null yayılmasını önleyebilirsiniz. Ö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 |
Denetimin değerini Sales denetimdeki tüm değerlerin toplamına bölerek satış yüzdesini Sales görüntüler. Denetimin FormatPercentözelliğini , olarak ayarlarsanız ifadeye eklemeyin *100 . |
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 , biçiminde görüntüler; mm-dd-yyburada mm ay (1 ile 12 arasında), dd gün (1 ile 31 arasında) ve yy yılın son iki basamağıdır (1980'den 2099'a kadar). |
=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 haftaları 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, bir 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 " YesSipariş Onaylandı" iletisini görüntüler; aksi takdirde iletiyi görüntüler "Order Not Confirmed." |
=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, işleci Between kullanarak başlangıç ve bitiş tarihi sağlayabilir ve sorgunuzun sonuçlarını bu tarihler arasında sevk edilen siparişlerle sınırlayabilirsiniz.
Aşağıdaki bölümlerde sorgularda kullanılacak ifade örnekleri sağlanır.
Sorgularda metin işlemleri
Aşağıdaki tabloda yer alan 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 başka bir işlem yapar.
| İ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. |
Sorgulardaki 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 İfade, 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 |
adlı bir alan FreightPercentageoluşturur ve her alt toplamdaki navlun ücretlerinin yüzdesini görüntüler. Bu ifade, alandaki değerleri Freight toplamak için işlevi kullanır Sum ve sonra bu toplamları alandaki değerlerin toplamına Subtotal böler. Bu ifadeyi kullanmak için, seçme sorgunuzu Toplamlar sorgusuna dönüştürün. Tasarım kılavuzunda Toplam satırını kullanmanız ve bu alan Expressioniçin Toplam hücresini . Toplamlar sorgusu oluşturma hakkında daha fazla bilgi için bkz. Verileri sorgu kullanarak toplama. Alanın Percentözelliğini , olarak ayarlarsanızFormat, 'yi eklemeyin*100. |
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.
Sorgularda 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. |
Sorgularda SQL toplama işlevleri
Aşağıdaki tabloda yer alan ifadeler, verileri toplayan veya özetleyen SQL işlevlerini kullanır. , Countgibi Sumişlevleri sık sık görürsünüz ve Avg bunlara toplama işlevleri denir.
Access, toplama işlevlerine ek olarak, değerleri seçmeli olarak toplamanıza veya saymanıza olanak tanıyan 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ı toplama işlevleri DSum, DCount ve DAvg'yi içerir.
Toplamları hesaplamak için genellikle Toplamlar sorgusu oluşturmanız gerekir. Örneğin, verileri gruba göre özetlemek için Toplamlar sorgusu kullanın. Sorgu tasarım kılavuzundan bir Toplamlar sorgusunu etkinleştirmek için Görünüm menüsünde Toplamlar'ı seçin.
| İ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 |
adlı bir alan FreightPercentageoluşturur ve alandaki değerlerin toplamını alandaki değerlerin Freight toplamına bölerek her alt toplamdaki navlun ücretlerinin yüzdesini Subtotal hesaplar. Bu örnekte işlev kullanılmaktadır Sum . Bu ifadeyi Toplamlar sorgusuyla kullanmanız gerekir. Alanın Percentözelliğini , olarak ayarlarsanızFormat, 'yi eklemeyin*100. Toplamlar sorgusu oluşturma hakkında daha fazla bilgi için bkz. Verileri sorgu kullanarak toplama. |
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" |
Londra'ya veya Hedge End'e Or sevk edilen siparişleri görüntülemek için operatörü kullanır. |
| SevkiyatÜlkesiBölgesi | In("Canada", "UK") |
Kanada'ya veya İngiltere'ye In sevk edilen siparişleri görüntülemek için operatörü kullanır. |
| SevkiyatÜlkesiBölgesi | Not "USA" |
İşleci kullanarak, Not ABD dışındaki ülkelere/bölgelere sevk edilen siparişleri görüntüler. |
| ÜrünAdı | Not Like "C*" |
İşleci ve joker karakteri kullanarak, Not* adları C ile başlamayan ürünleri görüntüler. |
| ŞirketAdı | >="N" |
Adı ile başlayan şirketlere NZsevk edilen siparişleri görüntüler. |
| ÜrünKodu | Right([ProductCode], 2)="99" |
Right işlevini kullanarak, ÜrünKodu değerleri ile biten 99siparişleri görüntüler. |
| SevkiyatAdı | Like "S*" |
Adı harfle Sbaş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( )) |
İşleci Between...And ve DateAdd ile 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# |
İşleci kullanarak, Between...And5 Ocak 2017 tarihinden önce ve 10 Ocak 2017 tarihinden önce sevk edilen siparişleri görüntüler. |
| İstenenTarih | Between Date( ) And DateAdd("M", 3, Date( )) |
İşleci Between...And 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
Bir Like desene uyan satırları eşleştirmeye çalıştığınız durumlarda işleç büyük bir esneklik sağlar, çünkü joker karakterlerle kullanabilir Like ve Access'in eşleştirmesi için desenler 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 ifadeyi Like "S*" 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 "Maison Dewe?" |
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ı
Veritabanında varolan bir veya birden çok alanda bulunan verileri değiştirmek için güncelleştirme sorgusu kullanın. Ö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 ifadeleri Update To , sorgu tasarım kılavuzunda güncelleştirmek istediğiniz alana ilişkin satırda kullanın.
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 DiliYapı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ünden SQL Görünümü'nü seçin. Aşağıdaki tabloda, 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 bu değeri sağlar. Aşağıdaki tabloda yer alan ifadeler, bir alan veya denetime ilişkin örnek varsayılan değerleri gösterir. 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 özelliğini değiştirin ValidationRule . Geçerlilik kuralı ValidationText ihlal edildiğinde Access tarafından görüntülenen metni barındıran özelliği de ayarlamayı göz önünde bulundurmalısınız. Özelliği ayarlamazsanız ValidationText , Access varsayılan bir hata iletisi görüntüler.
Aşağıdaki tablodaki örnekler, özelliğe ilişkin geçerlilik kuralı ifadelerini ValidationRule ve bu özellik için ValidationText ilişkili metni gösterir.
| 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. Eğer bloğunda koşulu tanımlamak için bir ifade kullanırsınız:
[Counter]=10
Özellikte olduğu ValidationRule gibi, If bloğundaki ifade de koşullu bir ifadedir. Ya da TrueFalseolarak çözümlenmelidir. 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. |