DOKUMANISTAN

Microsoft Access Tarih Sorguları #21

Bir projede yapıyorsanız olmazsa olmaz veri tipi işlemleri tarih alanlarıdır. Örneğin ödeme gününe 2 ay sonrası için bir işlem yapmak gibi birçok Tarih Sorguları işlemleri projenizde uygulamanız gereken bir işlevdir.

Örneğimizde aşağıdaki ürün listesindeki tarih alanı ile ilgili birkaç örnek yapacağız.

Tarih Sorguları Örnek Data

Ocak Ayındaki tarihleri listeleyelim.

Oluştur – Sorgu Tasarımı – URUN_LISTESI tablosunu ekliyoruz. İstediğiniz alanları getirebilirsiniz. İçinde tarih olsun yeterli. Ben aşağıdaki şekilde ekledim.

Sorgu Tasarımı Detayı

Önce tarih alanından ay değerlerini çıkarmam gerekiyor. Bunun için en sağdaki boş kolona

AY: Month(Tarih)

Yazıyoruz. : işaretinden önceki AY kelimesi kolonun ismi. İçine Tarih kolonunu tam karakterleri ile yazıyoruz.

Sorgu Detayı Ay Formülü

Böylece Sorgu gün, Ay, Yıl tarih alanından sadece ay alanını yeni kolona eklemiş oluyoruz.

Sorguyu çalıştırdığımızda ise en son kolonda Ay isminde kolon gelmiş oldu.

Sorgu Sonucu Ay Sayısı

Bundan sonraki işlemimiz gayet kolay. Tekrar tasarım görünümüne geliyoruz. AY Ölçüt kısmına Ocak ayını yani 1 yazıyoruz.

Ay İsmi Formülü

Sorguyu çalıştırdığımızda sadece Ocak Aylarını listelemiş olduk.

Ocak Ayı Listesi

Ürün tarihinden kaç gün geçtiğini hesaplayan Tarih Sorguları

Ürün tarihinden bugün itibariyle kaç gün geçtiğini hesaplayan bir sorgu yazalım.

Oluştur – Sorgu Tasarımı – Ürün Listesini ekliyoruz.

İstediğiniz alanları getirebilirsiniz.

Kaç Gün Geçti Sorgu Tasarımı

Tarih kısmının yanındaki boş sorgu alanına

Kaç Gün Geçti Formülü

KAC_GUN_GECTI: Date()-[Tarih]

: işaretinden önceki kolonun ismidir.

Date() bugünün temsil eden Access’in hazır fonksiyonudur.

Tarih alanı da tablomuzdaki alandır.

Sorguyu çalıştırdığımızda kaç gün geçtiğini görmüş oluyoruz.

Kaç Gün Geçti Gün sayısı

İki tarih arası Tarih Sorguları

Tarih alanında belirleyeceğimiz iki tarih arasında sorgulamak için

Oluştur – Sorgu Tasarımı – Ürün Listesini ekliyoruz. İstediğiniz kolonları getirin. Yalnız bırada 2 adet tarih alanı sorgu kısmına getiriniz. Tarih alanlarının Göster alanı biri seçili diğer seçili olmasın. (Yan Yana iki tarih görmek istemeyiz.) Görüntü aşağıdaki şekilde olacak.

İki Tarih Arası Sorgu Tasarımı

Önemli : Tarih sorgulaması yaparken mutlaka başına ve sonuna # işareti koyulmalıdır. Örneğin =#01.01.2000# gibi

İlk tarih alanı başlangıç olsun. Bunun için ilk alana

>= #01.01.2008#

İkinci tarih alanı da bitiş olsun. Bunun içim ikinci alana

<=#31.12.2008#

Sorgudaki ölçüt kısmına yazdığımızda aşağıdaki şekilde olmalı.

İki Tarih arası Sorgu Tasarımı Formülü

Sorguyu çalıştırdığımızda belirlediğimiz tarih arasındaki veriler gelmiş olacaktır.

İki Tarih Arası Sorgu Tablo Görünümü

Between Kullanarak iki tarih arası sorgulama

İki tarih arası sorgulamayı tek kolonda yapmak içinde beetween özelliğini kullanırız. Diğer örnekten tek farkı aşağıdaki between ile başlayıp arasına and koymaktır. Yine # işareti ile tarih olduğunu belirtiyoruz.

İki Tarih Sorgu Tasarım Formülü

Between #1.01.2008# And #31.12.2008#

Sorguyu çalıştırdığımızda aynı sonucu tekrar göreceksiniz.

İki Tarih Arası Sorgu Sonucu

DateDiff Formülü ile Örnekler

DateDiff formülü tarih işlemlerinde kullanılan en önemli formüllerden bir tanesidir. Bu formül hem excelde hem de Access’de aynı yöntemle kullanılabilmektedir.

DateDiff formülü örneğin vereceğiniz iki tarih arasında kaç ay olduğunu hesaplayabilen bir formüldür. Aynı şekilde kaç gün ve kaç yıl olduğunu da hesaplayabilirsiniz.

Örneğimiz için URUN_LISTESI tablosundaki TARİH alanı ile Bugünkü tarih arasında kaç gün, ay ve yıl kaldığınız hesaplayalım. Böylelikle Ürünlerin depoda kaç gün beklediğini öğrenmiş olacağız.

DADTEIFF Örnek Tablo

Datedif formünü açıklarken iki tarih arasında hesapladığını belirtmiştik. Ancak tablomuzda tek bir tarih alanı var. Diğer tarih alanı bugün olduğunu söylemiştik. İşte bugünün tarihini bulmak içinde date() şeklide bugünün tarihini hesaplayabileceğimiz formüldür.

İki tarihi tespit ettiğimize göre şimdi örneğimize geçebiliriz.

Oluştur – Sorgu Tasarımı – URUN_LISTESI seçiyoruz.

Sorgu alanına Ürün adı ve Tarih alanını ekliyoruz.

DATEIFF Sorgu Tasarımı

Şimdi Sağ kısma Tarih alanındaki veri ile bugün arasında kaç gün kaldığını hesaplayan formülü yazalım. Alan kısmına aşağıdaki şekilde yazıyoruz.

Depoda Bekleme Gün: DateDiff(“d“;Tarih;Date()) & ” Gün”

 

DATEIFF Örnek Tablo Sonucu

Datediff(“d” karakteri ile gün farkını bulmuş olduk. Şimdi de ay farkını bulmak için de m kullanarak aynı formülü uygulayalım.

 

Depoda Bekleme Ay: DateDiff(“m“;Tarih;Date()) & ” Ay”

 

DATEIFF Ay

Şimdide yıl hesaplaması yapmak için yyyy karakterini kullanacağız.

Depoda Bekleme Yıl: DateDiff(“yyyy“;Tarih;Date()) & ” Yıl”

 

DATEIFF Yıl

Datediff formülü ile bu iki tarih hesaplamalarında gün, ay yıl işlemini kolaylıkla yapabilirsiniz. Aynı işlemi excel de de yapabilirsiniz. Bu makale de Excel versiyonunu inceleyebilirsiniz.

 

Tarih ile İlgili Koşul Örnekleri

Date()

Güncel sistem tarihini gg/aa/yyyy şeklinde verir. Tarih içeren bir alanın Ölçüt: satırına yazılırsa güncel sistem tarihini içeren kayıtlar seçilir.

Now()

Güncel sistem tarihinin yanında güncel saati, dakikayı ve saniyeyi de verir. (dd/aa/yyyy saat:dakika:saniye)

>=Date()

Bugünün tarihinden sonraki ve bugünkü tarihleri içeren kayıtlar. (VADE adlı alanın Ölçüt: satırına yazılırsa vadesi bugünün tarihinden sonra ve bugün olanlar seçilir)

<=Date()

Bugünün tarihinden önceki ve bugünkü tarihleri içeren kayıtlar. (VADE adlı alanın Ölçüt: satırına yazılırsa vadesi bugünün tarihinden önce ve bugün olanlar seçilir)

<Date()-15

Bugünün tarihinden en az 15 gün daha eski tarihli kayıtlar seçilir. (VADE adlı alanın Ölçüt: satırına yazılırsa vadesi geçeli 15 günden daha fazla olmuş kayıtlar seçilir)

<Date()+15

Bugünün tarihinden itibaren 15 gün sonraki tarihten önceki tarihleri içeren kayıtlar. (VADE adlı alanın Ölçüt: satırına yazılırsa 15 gün sonrasına kadar vadesi gelen veya ödenmesi gereken seçilir)

Year([DogumTarihi]) = 1974

DogumTarihi alanında yılı 1974 olanlar. (YEAR(gg/aa/yyyy) fonksiyonu içine yazılan tarihin sadece yılını verir)

Year([DogumTarihi]) < 1974

DogumTarihi alanında yılı 1974’ten eski olanlar.

Year([DogumTarihi]) > 1974 DogumTarihi

alanında yılı 1974’ten büyük olanlar.

Year(Date())-Year([DogumTarihi])>18

Yıl hesabına göre yaşı 18’den büyük olanlar.

Month(gg/aa/yyyy)

İçine yazılan tarihin sadece ayını verir.

Day(gg/aa/yyyy)

İçine yazılan tarihin sadece gününü verir.

DatePart(“q”;[DogumTarihi])=4

Yılın son üç ayında  (Ekim, Kasım, Aralık) doğanlar.

DatePart(“q”;[DogumTarihi])=2

Yılın ikinci üç ayında (Nisan, Mayıs, Haziran) doğanlar.

DatePart(“q”;[DogumTarihi])<4

Yılın son üç ayından önce (Ocak, Şubat, Mart, Nisan, Mayıs, Haziran, Temmuz, Ağustos, Eylül) doğanlar.

DatePart(“q”;[DogumTarihi])>2

Yılın ikinci üç ayından sonra (Temmuz, Ağustos, Eylül, Ekim, Kasım, Aralık) doğanlar.

DateSerial(Year ([VADE]), Month([VADE]),5)

Vadesi her ayın 5’inde olanlar. (VADE adlı alanın Ölçüt: satırına yazılır)

DateSerial(Year ([VADE]), 1,Day([Vade]))

Vadesi 1. ayda dolanlar (VADE adlı alanın Ölçüt: satırına yazılır)

DateSerial(2003;Month([Vade]);Day([Vade]))

Vadesi 2003 yılında dolanlar. (VADE adlı alanın Ölçüt: satırına yazılır)

DateSerial(Year([VADE]);Month([Vade])+1;1)-1

Vadesi her ayın sonu dolanlar. (VADE adlı alanın Ölçüt: satırına yazılır)

Year([VADE]) = Year(Now())

Vadesi içinde bulunulan yılda (güncel yılda) dolanlar.

Year([VADE]) = Year(Now()) And  Month([VADE]) = Month(Now())

Vadesi içinde bulunulan yılda ve içinde bulunulan ayda (güncel ayda) dolanlar.

Year([VADE]) = Year(Now()) And  Month([VADE]) = Month(Now()) And Day([VADE])=Day(Now())

Vadesi içinde bulunulan günde (güncel günde) dolanlar.

 


Access Dosya Download Makalede kullandığımız Access Dosyasını buradan indirebilirsiniz.

Eğitime Access Seçme Sorgusunda Kullanıcıdan Veri Alma #22 makaleden devam edin.

Yorum yapın