Microsoft Access programında formül yazdığımızda eğer Office programı Türkçe ise TOPLA, SAY gibi fonksiyonları Türkçe olarak kullanırız. Ancak eski Office sürümlerde Office Türkçe olmasına rağmen İfade oluşturucusunda hazır formülleri Türkçe olarak seçmenize rağmen Sorguyu çalıştırdığımızda formül hatası veriyor. Access uygulamasında eski sürümlerde bir eksiklik yapılmış. Ekranda Türkçe seçmemize rağmen öyle bir fonksiyon yok diye hata veriyor. Bu makalemizde bu sorunu nasıl çözeceğimizi anlatmaya çalışacağım.
Office 365 veya Office 2019’da bu sorun çözüldü. Ancak eski sürümlerde bu sorun devam ediyor.
Access sorguda Toplama işlemi yapmak isterseniz Türkçe güncellemelerden kaynaklı “İfadede, tanımlanmamış ‘Topla’ İşlevi” Hatası vermektedir. Bu da Toplam alanında Türkçe yazmamıza rağmen ingilizce SUM değerini yazmanız gerekmektedir. Aksi takdirde Türk Topla işlevi yazarsanız böyle bir fonksiyon olmadığı için hata alırsınız.
Örneğin Grupla kısmını Topla olarak değiştirip çalıştırdığımda “İfadede, tanımlanmamış, ‘Topla’ İşlevi.” Hatası veriyor.
Access kendi hazırladığı seçeneklere kendi hata veriyor. Buradaki sorun Türkçe çevirmede bu özellikler unutulmuş sanırım.
Bu durumun çözümü için Topla’ya karşılık gelen SUM ifadesini kullanacağız. Bunun için Sorgu ekranında boş bir alanda sağ tuş SQL Görünümünde açıyoruz.
Bu kısım sorgumuzun aşağıdaki SQL halini göstermektedir.
SELECT Topla(URUN_LISTESI.Fiyat) AS ToplaFiyat FROM URUN_LISTESI;
Bu kod kısmında aşağıdaki gibi SELECT sonrasındaki Topla alanını silip yerine SUM yazıyoruz.
SELECT SUM(URUN_LISTESI.Fiyat) AS ToplaFiyat FROM URUN_LISTESI;
Sorguyu tekrar çalıştırdığımızda Fiyat alanının toplam alanı geldiğini göreceksiniz.
Diğer Türkçeye Çevrilmemiş Hataları da aşağıdaki şekilde Türkçe yerine İngilizcesi ile değiştirdiğinizde hata düzelecektir.
TÜRKÇE İFADELER | YERİNE DEĞİŞTİRİLECEK İFADE |
Grupla | Hata Yok |
Topla | SUM |
Ortalama | AVG |
Min | Hata Yok |
En Çok | MAX |
Say | COUNT |
StDev | Hata Yok |
Var | Hata Yok |
İlk | FIRST |
Son | LAST |
İfade | Hata Yok |
Koşul | Hata Yok |
Konumuza geri dönecek olursak bir önceki örnekte fiyat alanının Ortalama değerini almıştık.
Ürün listesindeki Bölge alanında İller yer alıyor.
Sorumu şu şekilde genişletsek; Bölgelere göre fiyat ortalaması istersek, tek yapmamız gereken sorgu tasarımına gelerek aynı örneğe Bölge alanını da ilave etmek.
Not: Ortalama hatasından dolayı artık AVG kullanıyoruz.
HATADAN DOLAYI DÜZELTİLEN SORGU | HATA VERECEK AMA OLMASI GEREKEN SORGU |
Bölge alanını ilave ettiğimizde Bölge Toplam Grupla ile Fiyat alanı sayısal alanda hesaplama yapacağından ortalama fonksiyonunu vermiş olduk. Sorguyu çalıştırdığımızda bir öncekinde genel toplamı verirken şimdi İllere göre dağılım yaparak İllerin Fiyat ortalamasını elde etmiş olduk.
Sorgumuzu sorgu_toplamlar olarak kaydedelim.
Rakamların daha düzgün görünmesi içinde yukarda bahsettiğim Para Birimine çevirirsek aşağıdaki gibi olacaktır.
Böylece Toplamlar ifadesi ile sayısal ifadelerde hesaplama metinsel ifadeler dede gruplama yaparak anlamlı bir veri elde etmiş oluyoruz.