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

Microsoft Access'e dair herşey...

Değişkenlerin Tanımlanması-1

 Değişkenler ve Sabitler-1


Değişken Nedir?

Değişken adı üzerinde herhangi bir değeri olan ve bu değerin kod içerisinde değişerek istenilen yerde kullanılmasını sağlayan veridir. Değişkenlerin değerleri başlangıçta sayısal değişkenler için 0 (Sıfır), string değişkenler için Empty yani boştur.

Değişkenlerin Tanımlanması ve Kapsamı
Değişkenlerimizi tanımlarken kullandığımız kapsama göre isim vermeliyiz. Şu şekilde söyleyeyim. Bir olay içinde mi kullanacağız veya bir modül içerisinde mi kullanacağız ya da tüm modüllerde ve olaylarda mı kullanacağız ona karar vermemiz lazım. Daha sonra tanımlamalara geçebiliriz. 
Burada önemli bir noktayı hatırlatmak isterim. Eğer modüllerinizin başlangıcında Option Explicit deyimini kullanmazsanız hiç bir yerde değişken tanımlamanıza gerek kalmaz. 

Dim deyimi değişken tanımlama

Fakat bu durumun bir çok yönden dezavantajları bulunmaktadır. Hatalı adlandırmaların önüne geçemezsiniz. Uygulamanızda hataları göremezsiniz fakat hatalı durumlar ortaya çıkabilir. Bunun için en sağlamı bu deyimi kullanmaktır. Bu deyimi kullandığınızda her değişkeni tek tek tanımlamalısınız.Eğer tanımlamazsanız Access size aşağıdaki hatayı verecektir.

Dim deyimi değişken tanımlama

1-) Olay içerisinde kullanılan değişkenler
2-) Modül içerisinde kullanılan değişkenler
3-) Tüm projede kullanılan değişkenler

1-) Olay içerisinde kullanılan değişkenler

Bir olay içerisinde kullandığınız değişkenler sadece o olay içerisinde geçerli olur. Örneğin bir butonun Click ()  olayını ele alalım.

Private Button1_Click()
Dim i as Integer
.......
.......

i = 5
i = i + 1
End Sub

Private Button1_GotFocus()
.......
.......

Debug.Print i
End Sub

Burada kullandığımız Dim deyimi ile tanımladığımız i değişkenimizi sadece Click () olayı içerisinde kullanabiliriz. Farklı bir olay içerisinde örneğin GotFocus () olayında i değişkenini kullandığımızda aşağıdaki hatayı verecektir.

RESİM

Eğer bir sınıf modülünde tüm olayların içerisinde bir değişken kullanmak isterseniz, o zaman değişkeninizi modülün başında Option Explicit deyiminden hemen sonra kullanmalısınız.

Option Compare Database
Option Explicit
Dim i as Integer
-------------------------------------------
Bu durumda i değişkenini tüm olaylarda kullanabilirsiniz.
Peki diyelim ki bu değişkeni Form-1 formunun modülünde kullandık. Ya bu değişkeni Form-2, Form-3, Form-4, Rapor-1, Rapor-2 vs diğer modüllerde kullanmak isteseydik ne yapacaktık, Evet bununda kolay bir yolu var o zaman Global bir değişken tanımlamalıyız.

Option Compare Database
Option Explicit
Global FullName As String

Bu durumda FullName String değişkenini tüm projede kullanabilirsiniz.


Dim deyimi değişken tanımlama


DEĞİŞKEN VERİ TÜRLERİNİ TANIMLAMAK

Değişken veri türlerini her zaman amaca uygun tanımlanmalıdır. Bu sayede hem bellekten tasarruf edilir hem de hataların önüne geçilmiş olur. Eğer bir değişkenin veri türünü ayarlamazsanız varsayılan olarak Access bunu Variant veri türü olarak ayarlar.
Aşağıdaki tabloda değişken veri türleri, sınırları ve kapladıkları alan gösterilmektedir.

Veri Türü

Kapladığı Alan (Bayt)

Minimum ve Maksimum Değerler

Bayt

1 bayt

0 – 255 aralığında bir sayı

Boolean

2 bayt

Doğru ya da Yanlış / Açık ya da Kapalı

Integer

(Tam Sayı)

2 bayt

-32.768 ila 32.767 aralığında bir sayı

Long Integer (Uzun Tam Sayı)

4 bayt

-2.147.483.648 ila 2.147.483.647 aralığında bir sayı

Single

(Tek)

4 bayt

Negatif Değerler İçin -3.402823E38 ila -1.401298E-45 aralığında bir sayı;

Pozitif Değerler İçin 1.401298E-45 ila 3.402823E38 aralığında bir sayı

Double

(Çift)

8 bayt

Negatif Değerler İçin -1.79769313486231E308 - 4.94065645841247E-324; aralığında bir sayı

Pozitif Değerler İçin 4.94065645841247E-324 ila 1.79769313486232E308 aralığında bir sayı

Currency

(Para Birimi)

8 bayt

-922.337.203.685.477.5808 - 922.337.203.685.477.5807 aralığında para birimi

Decimal

(Ondalık)

14 bayt

+/-79,228,162,514,264,337,593,543,950.335 ondalık nokta olmadan;+/-7.9228162514264337593543950335 ondalık basamağın sağında 28 basamak ile

Date

(Tarih)

8 bayt

1 Ocak 100 - 31 Aralık 9999 arası tarihler

Object

(Nesne)

4 bayt

Herhangi bir Nesne referansı

String

(Değişken Uzunluklu)

10 bayt + Dize Uzunluğu

0 ila yaklaşık 2 milyar 65.400 uzunluğunda karakter

String

(Sabit Uzunluklu)

Dize Uzunluğu

1 ila yaklaşık 65.400 uzunluğunda karakter

Variant

(Sayılarla Beraber)

16 bayt

Double aralığına kadar herhangi bir sayısal değer

Variant (Karakterlerle Beraber)

22 bayt + Dize Uzunluğu

Değişken uzunluklu String ile aynı aralık


Örneğin tablonuzda bir sıra numarası tanımlamak istiyorsunuz bu sıra numarası 0 ila 100 arasında olması gerekiyor. Çoğu kullanıcı bu tanımlamayı;
Dim sirano  As Integer 
olarak tanımlar. Oysaki bu aralığa uyan ve bellekte daha az yer kaplayan Byte veri türünü kullanmak gerekir. Doğru tanımlama;
Dim sirano  As Byte
olmalıdır.
Benzer bir hata da şöyle yapılmaktadır. Örneğin Posta kodu sadece rakamlardan oluşmaktadır ve sayısal bir veri türü tanımlamak gerekir. Yanlış!
Bu veri türünü String olarak tanımlamalıyız ve 5 karakterle sınırlandırmalıyız. Posta kodu 5 rakamdan oluşur. Mantık şudur; Eğer rakamsal bir alanda (posta kodu örneğimizde olduğu gibi) hesaplama yapılmayacaksa her zaman String olarak tanımlamak daha iyidir.

Yorum Gönder

0 Yorumlar