MS Access Veritabanları, VBA ve SQL Kullanımı

Microsoft Access'e dair herşey...

Kullanıcı Tanımlı Fonksiyonlar

   Kullanıcı Tanımlı Fonksiyonlar


Fonksiyon Nedir?

MS Access'te yerleşik fonksiyonlar vardır, bunlara örnek verecek olursak Trim(), InStr(), WeekDayName(), Replace(), Year(), Cos(), DLookup() gibi. Bu fonksiyonlar Ms Access içerisinde yerleşiktir. İhtiyaç duyulan her yerde kullanılabilir. Örneğin bir olay içerisinde, bir metin kutusunun denetim kaynağında veya bir sorguda ya da makroda kullanılabilir. Fonksiyonu yazıp parametrelerini belirtmek yeterlidir.
Fonksiyonlar belirli bir görevi yerine getiren kod parçalarından oluşur. Bir çok yerde belirli bir görevi yerine getirecekseniz fonksiyonların gücünden yaralanmalısınız. Kullanıcı Tanımlı Fonksiyon UDF olarak ta bilinir. (User Defined Functions) En basit fonksiyon genel anlamda aşağıdaki gibi olabilir.

Public Function SayTopla(a,b)
    SayTopla = a+b
End Function

Bu fonksiyonu 2 sayının toplamının sonucunu almak için kullanabiliriz. Peki nasıl çağırabiliriz bu fonksiyonu mesela bir metin kutusunun Denetim Kaynağı özelliğine;


vba user defined functions

vba user defined functions

yazabiliriz. Yada bir sorguda 2 sayısal alanı toplatmak için kullanabiliriz. Aşağıdaki komut satırı bir sorguda kullanılmıştır. Shipping Fee ile Taxes alanını toplayıp Toplam Fiyat adlı sütunda görüntüler.

Toplam Fiyat:ToplaSay([Shipping Fee];[Taxes])

vba user defined functions



vba user defined functions

Şimdi ise bire modül içerisinde nasıl kullanıldığına bakalım.
Yine aynı örnek üzerinden gidecek olursak şöyle yapalım. Öncelikle daha önce txtSonuc metin kutusunun Denetim Kaynağı özelliğindeki ifadeyi silelim. Daha sonra forma bir komut düğmesi yerleştirelim, Adı cmdHesapla olsun. Şimdi cmdHesapla komut düğmesinin Click olayına aşağıdaki kodu yazalım.

vba user defined functions


vba user defined functions

Şimdi girilen 2 sayıdan büyüğünü bulan fonksiyon yazalım.

vba user defined functions



Function BuyukSayiBul(Sayi1 As Variant, Sayi2 As Variant) As Variant
BuyukSayiBul = Null

    If IsNull(Sayi1) Then
    
        If Not IsNull(Sayi2) Then
            BuyukSayiBul = Sayi2
        End If
        
            Exit Function
    Else
        If IsNull(Sayi2) Then
            BuyukSayiBul = Sayi1
         Exit Function
        End If
    
    End If
    
    If Sayi1 >= Sayi2 Then
        BuyukSayiBul = Sayi1
    Else
        BuyukSayiBul = Sayi2
    End If
    
End Function


İşte bu yaptığımız işlemle kullanıcı tanımlı bir fonksiyon oluşturmuş ve onu çeşitli yerlerde kullanmış olduk. Bu kullanılabilecek en basit fonksiyona bir örnekti. Tabii ki çok daha karmaşık fonksiyonlar aynı mantıkla oluşturulabilir ve kullanılabilir.



















Yorum Gönder

0 Yorumlar