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.
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.
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.
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.
0 Yorumlar