Ana Sayfa Microsoft Access Access Dersleri Access 2010 ile Fonksiyon Kullanımı Dersi

Microsoft Access 2010 ile hazırlanmış örnek program fonksiyon kullanımını anlatmaktadır. Fonksiyon nerede ne zaman kullanılmalı sorusuna cevap olarak hazırlanan bu örnek programda aynı zamanda tarih ve saat komutlarının kullanılışıda anlatılmıştır. Öncelikli olarak senaryomuzu inceleyelim. Bir program yapıyorsunuz ve eklediğiniz her kayıt için birbirinden farklı bir numara vermek istiyorsunuz. Bu işlemi otomatik sayı ile yapabilirsiniz ancak hem kontrolünüz az olacaktır hem de kayıtların birbiri ile ilişkilerinde daha tutarlı işlem yapmayı garanti altına alabileceksiniz. Otomatik sayı verirken diğer kayıtlardan farklı olması için rastgele bir sayı üretip kaydedebiliriz ancak biraz daha anlamlı bir sayı üretmek isterseniz o anki zamanı kaydetmek iyi olabilir.

Access 2010 ile yapmış olduğumuz örnek programı inceleyecek olursanız hareket kodu üreten bir butonumuz olduğunu göreceksiniz. Bu butona basıldığı zaman o anki yıl, ay, gün, saat, dakika, saniye bilgisini birleştirip metin kutusuna yazdığını göreceksiniz.

Fonksiyonların kullanımının ne avantajı olacak ona değinelim. VBA editöründe bildiğiniz gibi her olay için kodlar yazıyoruz. Elimizde stok girişi, kasa girişi, çek çıkışı vb. çok sayıda form olabilir. Bu formlarda otomatik sayı haricinde hareket kodu adını verdiğimiz sadece o işleme özel bir numara vermek isteyelim. Ancak aynı kodları her defasında yazmamız gerek verimlilik gerekse performans açısından sıkıntı olabilir. Ayrıca yazdığımız kod içerisinde bir değişiklik yapmamız gerekirse tüm yazdığımız yerlerde bu düzeltmeyi yapmamız gerekir ve bu hiç hoş olmaz. Tüm bu sebeplerden dolayı bir modül ekleyip içinde bir adet fonksiyon oluşturacağız. Kodlarımızı bu fonksiyon içerisine yazarak her lazım olduğunda fonksiyonu çalıştıracağız.

Şimdi neler yapmamız gerektiğine bakalım. Öncelikli olarak bir form lazım. Bizim örneğimizde tablolar ile ilgili bir işlem yapmayacağımız için tablolardan bağımsız boş bir form ekledik ancak siz kendi formlarınız üzerinde işlem yapabilirsinizde. Tüm bu işlemlerin öncesinde yedek almanızı tavsiye ederiz. Formumuzun üzerine bir tane metin kutusu ( text box ) ekledik ve adını txt_hareket_kodu olarak değiştirdik. Hemen peşinden de bir adet komut butonu ( command button ) ekledik ve adını btn_hareket_kodu_uret olacak şekilde değiştirdik.

Microsoft Access 2010 Tıklama Olayı

Butonumuzun üzerine sağ tıklayınca açılan menünün en altındaki Özellikler seçeneğini tıkladık. Gelen pencerenin sekmelerinde yer alan Olay sekmesini tıklayarak Tıklatıldığında olayında Kod Oluşturucusu seçeneği ile VBA editör sayfasına geçiş yaptık. Sol tarafta yer alan Project Explorer bölümünde boş bir alanda sağ tıklayarak açılan menüden Insert -> Module seçeneğini tıklıyoruz.

Microsoft Access VBA editörü yeni modül ekleme

VBA editöründe kodları yazdığımız sağ tarafta imleçi göreceksiniz. Bu noktadan itibaren fonksiyonumuzu yazmaya başlıyoruz.

Access 2010'da Modüle Fonksiyon Ekliyoruz
1
2
3
4
Function HareketKodu() As String
 
 
End Function

Function anahtar kelimesinden sonra bir isim veriyoruz. Daha sonradan rahat hatırlayabilmek ve kullanabilmek adına fonksiyonumuza isim olarak HareketKodu verdik. Bu fonksiyon String tipte değer üretecek. Siz birinci satırdaki kelimeleri yazdığınızda 4. satırdaki End Function otomatik olarak VBA Editörü tarafından yerleştirilecek. HareketKodu fonksiyonumuzda kullanacağımız değişkenleri ve tiplerini tanımlıyoruz.

Access 2010 Değişken Tanımlıyoruz
1
2
3
4
5
6
7
8
9
10
Function HareketKodu() As String
Dim sene As String
Dim ay As String
Dim gun As String
Dim saat As String
Dim dakika As String
Dim saniye As String
 
 
End Function

Toplamda 6 adet değişken kullanacağız. Bunlar içinde bulunduğumuz yıl, ay, gün, saat, dakika ve saniye olacak. String tipte değer döndüreceğim için değişkenin tipini String olarak belirledim. Yukarıda gördüğünüz gibi değişkenleri 2. ve 7. satırlar arasında tanımladık. Değişken tanımlarken Dim kelimesi ile başlayıp peşinden değişkene kendi vermek istediğimiz ismi veriyoruz. Sonrasında As kelimesini ekleyip değişkenin tipini String olarak belirttik. Her ne kadar kullanımı doğru olsa da tercih edilen kullanım aşağıdaki gibi olsa daha iyi olacaktır.

Access 2010 Değişkenleri Tanımlama Alternatifi
1
2
3
4
5
Function HareketKodu() As String
Dim sene, ay, gun, saat, dakika, saniye As String
 
 
End Function

Görüldüğü gibi sadece 2. satırda Dim dedikten sonra tüm değişkenlerin arasında virgül olmak üzere As String öncesinde tanımlayabiliyoruz. Aynı tipte değişkenleri tek satırda tanımlamak daha iyi olacaktır. Bundan sonra yapmamız gereken şey bu değişkenlerin değerlerini bulmak.

1
2
3
4
5
6
Function HareketKodu() As String
Dim tarih As String
 
tarih = Date & Time
 
End Function

şeklinde de kısaca bu işi halledebilirdik ancak  elimize geçecek değer 17.08.201012:16:23 gibi bir şey olacaktır. Bizim istediğimiz arada nokta, iki nokta üst üste işaretleri olmasın.

Access 2010 Tarih ve Format Komutu Kullanımı
1
2
3
4
5
6
7
8
9
Function HareketKodu() As String
Dim sene, ay, gun, saat, dakika, saniye As String  
 
sene = Format(Date, "yyyy")  
ay = Format(Date, "mm")
gun = Format(Date, "dd")
 
 
End Function

4. ve 6. satır arasında yer alan komutlar ile yıl, ay, gün olarak ayrı ayrı parçalara ayırıyoruz. Tarih komutu olarak Date kullansak 17.08.2010 değerini bize vereceği için parçalara bölme işlemini Format komutu ile yaptık.

  • "yyyy" sadece yılı 2010 gibi verecektir
  • "mm" sadece ay değerini iki haneli olarak verecektir. Ağustos ayı 8 vermesi gerekir iken ben 08 gibi iki haneli istediğim için "mm" kullanımını tercih ettim.
  • "dd" sadece gün değerini iki haneli olarak verecektir. Yine yukarıdaki gibi tek haneli değerlerin başına 0 ( sıfır )  konularak iki haneli değer elde edilir.
Access 2010 Time ve Format Komutunun Kullanımı
1
2
3
4
5
6
7
8
9
10
11
12
13
Function HareketKodu() As String
Dim sene, ay, gun, saat, dakika, saniye As String  
 
sene = Format(Date, "yyyy")  
ay = Format(Date, "mm")
gun = Format(Date, "dd")
 
saat = Format(Time, "hh")
dakika = Format(Time, "Mm")
saniye = Format(Time, "Ss")
 
 
End Function

Saat komutu olarak Time komutunu Format komutunun içinde kullanarak istediğimiz değerleri tek tek alarak değişkenlerimize atadık. Format komutunun kullanımı ile ilgili ayrıntılı tablo konunun en altında verilmektedir. Son olarak elimizdeki 6 değişkeni birleştirip geri değer döndürmek kaldı.

Access 2010 Fonksiyonun Nihai Hali
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Function HareketKodu() As String
Dim sene, ay, gun, saat, dakika, saniye As String
 
sene = Format(Date, "yyyy")
ay = Format(Date, "mm")
gun = Format(Date, "dd")
 
saat = Format(Time, "hh")
dakika = Format(Time, "Mm")
saniye = Format(Time, "Ss")
 
HareketKodu = sene & ay & gun & "_" & saat & dakika & saniye
 
End Function

12. satırda elimizdeki 6 değişkenin 3 ü tarih 3 saat ile ilişkilidir. İleride okumayı kolaylaştırmak adına tarih ve saat değişkenlerinin arasında _ ( alt çizgi ) kullanacağız. Her değişkeni diğeri ile birleştirmek için & operatörünü kullanıyoruz. HareketKodu değişkeni fonksiyonun ismidir ve elimizdeki değeri geri göndermeye yaramaktadır. Buraya tekrar geri döneceğiz şimdi yazdığımız fonksiyonu nasıl kullanacağımıza bakalım.

Yukarıda hatırlarsanız bir form, bir metin kutusu, bir buton eklemiştik. Butonun üzerine sağ tıklamış, özellikler seçeneğine tıklayarak olay sekmesinin içindeki Tıklatıldığında Olayında Kod Oluşturucusunu seçip VBA editöre geçiş yapmıştık. Görmüş olduğunuz ekran şöyle bir şey olması gerekmektedir.

Microsoft Access 2010 VBA Kodu

Buton tıklama olayının kodu içerisindeki kodumuz ise şu şekildedir:

Access 2010 Buton Tıklama Olayının Kodları
1
2
3
4
5
Private Sub btn_hareket_kodu_uret_Click()
 
txt_hareket_kodu = HareketKodu
 
End Sub

txt_hareket_kodu metin kutumuzun adıydı. Eşittir operatöründen sonra HareketKodu yazarak fonksiyonumuzu çağırdık.HareketKodu isimli fonksiyon çalışacak ve 20100817_131634 gibi bir değer üretecektir. İşte iki paragraf yukarıda bahsetmiş olduğumuz "Buraya tekrar döneceğiz" noktasına geldik. Üretilen değeri tekrar fonksiyonun ismi olan HareketKodu isimli değişkene atadık.

Microsoft Access 2010 Fonksiyon İşleme Şeması

HareketKodu değişkeni içindeki 20100817_131634 değeri ile birlikte butonun tıklama olayına geri dönecektir. Son durum şu şekilde olmuş olacak:

txt_hareket_kodu = 20100817_131634

Artık metin kutumuzun değeri 20100817_131634 oldu. İşte bütün bu kodları her lazım olan yerde kullanacak olsaydık her defasında aynı kodları tekrar yazacaktık. Halbuki şu anda modül içinde bir kere fonksiyonu yazdık ve fonksiyon bir kod üretip çağırıldığı noktaya geri dönecektir. Bize hem pratiklik kazandırmış oluyor hem de kodlarımızın yönetilebilirliği artmış oluyor.

Konumuz burada sona erdi. Eğer içerikte anlatılan Access 2010 ile yapılmış örnek dosyayı indirmek isterseniz tıklayınız.

Format Komutunun Parametreleri Microsoft Web Sitesinden Alınmıştır.

Simge Açıklaması
: (sütun) Saat. Ayırıcılar Windows'un bölgesel ayarlarında ayarlanır.
/ Tarih ayırıcı.
c Genel Tarih önceden tanımlanmış biçimiyle aynı.
g Tarihe göre bir veya iki basamaklı yazılan ayın günü (1 - 31).
gg İki basamaklı yazılan ayın günü (01 - 31).
ggg Günün ilk üç harfi (Paz - Cts).
gggg Günün tam adı (Pazar - Cumartesi).
ggggg Kısa Tarih önceden tanımlanmış biçimiyle aynı.
gggggg Uzun Tarih önceden tanımlanmış biçimiyle aynı.
h Haftanın günü (1 - 7).
hh Yılın haftası (1 - 53).
a Tarihe göre bir veya iki basamaklı yazılan, yılın ayı (1 - 12).
aa İki basamaklı yazılan yılın ayı (01 - 12).
aaa Ayın ilk üç harfi (Oca - Ara).
aaaa Ayın tam adı (Ocak - Aralık).
ç Yılın çeyreği olarak gösterilen tarih (1 - 4).
y Yılın gününün sayısı (1 - 366).
yy Yılın son iki basamağı (01 - 99).
yyyy Tam yıl (0100 - 9999).
s Duruma göre bir veya iki basamaklı saat (0 - 23).
ss İki basamaklı saat (00 - 23).
d Saate göre bir veya iki basamaklı dakika (0 - 59).
dd İki basamaklı dakika (00 - 59).
n Duruma göre bir veya iki basamaklı saniye (0 - 59).
nn İki basamaklı saniye (00 - 59).
ttttt Uzun Saat önceden tanımlanmış biçimiyle aynı.
AM/PM Büyük harflerle duruma göre "AM" veya "PM" olarak belirtilen on ikilik saat.
am/pm Küçük harflerle duruma göre "am" veya "pm" olarak belirtilen on ikilik saat.
A/P Büyük harflerle duruma göre "A" veya "P" olarak belirtilen on ikilik saat.
a/p Küçük harflerle duruma göre "a" veya "p" olarak belirtilen on ikilik saat.
AMPM Windows'un bölgesel ayarlarında tanımlandığı gibi uygun sabah/öğleden sonra göstergeli on ikilik saat.

Yorum ekle


Güvenlik kodu
Yenile

Benzer Konular

Web Statistics