DERS 3: ACCESS'TE TABLO TASARIMI/VERİ TÜRLERİ/ALAN ÖZELLİKLERİ (Resimli Anlatım)
#1
Bugün Access veritabanı programında tek tabloyla oluşturacağımız basit bir telefon rehberi hazırlamayı öğrenelim. Bunu yaparken alan özelliklerinin ve veri türlerinin ne anlama geldiğini kısaca ve örneklerle anlatmaya çalışalım. Daha sonraki derslerimizde ise yaptığımız bu tabloyu veri girişini kolaylaştırmak ve göze hoş gelmesi için bir formla süsleyip, form üzerine denetimler yerleştirmeyi öğreneceğiz.

Hatırlıyorsanız daha önceki derslerimizde Access programını çalıştırmayı ve kısaca tablolar, sorgular, formlar gibi Access bileşenlerinin ne işe yaradığını görmüştük. Orada “TelefonRehberim” adı altında bir veritabanı da oluşturmuştuk. Bundan sonraki derslerimizi olabildiğince bu örnek üzerinden yapacağız.

Şimdi “TelefonRehberim” adlı veritabanı dosyamızı açalım ve üzerinde çalışmaya başlayalım.

1- Örneğimizi açtığımız zaman ilk olarak karşımıza “TelefonRehberi” adlı çalışmamızın veritabanı penceresinin bulunduğu ekran gelecektir. Burada “Tasarım görünümünde tablo oluştur” seçeneğine çift tıklayalım.

[Resim: resim1xg5.gif]

2- “Tasarım görünümünde tablo oluştur” seçeneğine çift tıkladığımız zaman karşımıza asağıda görülen pencere gelecektir.

[Resim: resim2lm6.gif]

Burası oluşturacağımız tablonun tasarımını yapacağımız bölümdür. Görüldüğü gibi burada üç sütun vardır:

a-) Alan Adı: Tablomuzdaki alanlara hangi adı vereceğimiz buraya yazarız. Örneğin “adı”, “soyadi”, “adresi” v.b. gibi... (Bu bölümde ben ileride sorun yaşamamak için Türkçe karakter kullanmamaya ve kelimeler arasında boşluk bırakmamaya gayret ediyorum). Bir alan adı oluşturduğumuz zaman o alanla ilgili bütün veriler o sütunda toplanacaktır. Örneğin “adı” alanında bütün isimler bu alanda kayıtlı olacak ve alt alta dizileceklerdir.

b-) Veri Türü: Burada kullanacağımız alanın hangi özelliklerde olacağını belirtebiliriz. Yani verinin türü ne olacaktır? Her alanın özelliğine göre kullanacağımız veri türü farklı olmalıdır. Örneğin kişilerin isimlerini tutacağımız bir alanın “Sayı” veri türünde olması anlamsız olacaktır. Bunun gibi örneğin tarihler “Tarih/Saat” , ad-soyadlar “Metin”, para tutarları “Para Birimi”, uzun açıklamalar “Not” veri türünde tutulursa hem hataların önüne geçilmiş hem de ileride yapacağımız sorgulardan/formlardan/raporlardan v.s. doğru sonuçlar alınmış olur. Şimdi bu veri türlerini kısaca görelim:

-Metin: Alanda kısa yer işgal edecek veriler bu veri türünde tutulur. Örneğin ad-soyad bilgileri, firma isimleri v.b. gibi. Yine telefon numarası gibi üzerinde işlem yapılması gerekmeyen sayısal bilgiler de (gerekirse “giriş maskesi” özelliğiyle tanımlanarak) bu veri türünde tutulabilir. Bu alana 255 karaktere kadar veri girilebilir. Ancak veritabanının gereksiz yere şişmemesi için alanın özelliğine göre (alan özelliklerini ve değiştirmeyi aşağıda göreceğiz) bu karakter sayısını sınırlı tutmakta fayda vardır. Mesela kişinin adını gireceğimiz bir alanın 255 karakter uzunluğunda yer işgal etmesi yerine en fazla 30 karakterlik bir yer tutması daha uygun olacaktır.

-Not: Genelde uzun metinleri yazacağımız alanlar bu veri türünde tutulur. Örneğin adres bilgileri, tanıtım yazıları. (Bir alan için “Metin” veri türünün uzunluğu yetmiyorsa da bu veri türü seçilebilir). Bu tür alanlara 65535 karaktere kadar bilgi girilebilir.

-Sayı: Tabloda üzerinde işlem yapılabilecek sayısal değerlerin girilebileceği alan türüdür. Örneğin kişinin yaşı, satılan malın miktarı gibi alanlar bu veri türüyle tutulabilir.

-Tarih/Saat: Tarih ve saat türündeki bilgiler için kullanılır. Örneğin günün tarihi, doğum tarihi gibi alanlar bu veri türünde tanımlanır.

-Para Birimi: Parasal değerleri tutacağımız alanlarda bu veri türü tanımlanır. Bu tür alanlara 15 basamak tamsayı, ondalıktan sonra da 4 basamak bilgi girilebilir.

-Otomatik Sayı: Benim en önem verdiğim veri türlerinden birisidir. Bu tür alanlardaki sayı değeri girilen her kayıt için otomatik olarak sırayla artarak gider. Oluşturacağımız her tablo için bu şekilde bir otomatik sayı alanı tanımlamakta fayda olduğunu düşünmekteyim. Zira veritabanındaki tablolar arasındaki ilişkiler genel olarak bu alanlarla kurulur ve birbirine bağlanarak veri tutarsızlıkları, güncelleme yanlışlıklarının ve hataların önüne geçilir. Ben bu alana ad verirken genelde “KimlikNo”, “sirano”, “idno”, “KayitNo” gibi isimler vermeyi tercih ediyorum.

-Evet/Hayır: Mantıksal alan türüdür. İki ihtimalli bilgiler için kullanılır. Örneğin askerliğini yaptı/yapmadı, evli/evli değil, doğru/yanlış gibi bilgiler burada tutulur.

-Köprü: İnternet üzerinden bağlantı kurulacak web adresleri için tanımlanır. Örneğin bir kişinin e-posta adresi bu alanda tutulabilir.

-OLE Nesnesi: Veritabanına resim, ses, film gibi nesnelerin eklenmesi amacıyla kullanılan veri türüdür. Örneğin bir personel programında personelin fotoğrafları bu veri türüyle oluşturulmuş bir alanda tutulabilir.


c-) Tanım: Tablomuzda oluşturduğumuz alanın özelliklerini belirtebileceğimiz bölümdür. Örneğin “Metin” veri türünde oluşturduğumuz ve “Adı” ismini verdiğimiz alanın “Tanım” bölümüne “Kişinin adının kaydedileceği alandır” gibi bir ifade konulabilir. Buradaki açıklamalar veritabanımızda aşağıda durum çubuğunda görünür.

3- Ben yukarıda anlatmaya çalıştığım özelliklerden faydalanarak aşağıdaki gibi bir tablo tasarımı oluşturdum:

[Resim: resim3fb8.gif]

Tablo tasarımındaki alanları ve veri türlerini tanımlarken şunlara dikkat ettim:

KayitSiraNo: Tablomda her kayıt için 1’den başlayıp sırayla artarak giden bir numara olması için bu alanın veri türünü “Otomatik Sayı” yaptım. İmlecim bu satırdayken “Tablo Tasarımı” araç çubuğundaki anahtar simgesine tıklayarak bu alanı “Birincil Anahtar” olarak belirledim. Birincil anahtar belirlememdeki amaç, tablomda diğerlerinden farklı olarak benzersiz / tekrarlamayan bir kayıt alanı oluşturmak istememdi. Daha sonraki ders veya konularımızda göreceğimiz gibi birincil anahtarın bir önemi de birden fazla tablosu olan uygulamalarda tablolar arası ilişkileri kurarken ortaya çıkacak.

Adi: Kişinin adını girebileceğim bir alan oluşturdum ve bu alana metin gireceğim için veri türünü “Metin” yaptım. (Aşağıda buranın alan özelliklerini değiştireceğiz).

Soyadi: Kişinin soyadını girebileceğim bir alan oluşturdum ve bu alana metin gireceğim için veri türünü “Metin” yaptım. (Aşağıda buranın alan özelliklerini değiştireceğiz).

DogumTarihi: Kişinin doğum tarihini girmek istediğim için bu alanın veri türünü “Tarih/Saat” olarak belirledim. (Buranın da alan özelliklerini değiştirip, giriş maskesi belirleyeceğiz daha sonra).

Adresi: Kişinin adresini girmek istediğim bu alanın veri türünü “Not” yaptım. Zira adresin uzun olabileceğini ve “Metin” veri türünün alan boyutunun adres için yeterli olmayacağını düşündüm.

EPostaAdresi: Kişinin varsa e-posta adresini girebilmek için oluşturduğum bu alanın veri türünü (alana e-posta adresini girdikten sonra tıklayınca e-posta programımın açılmasını ve e-posta gönderebilmeyi istediğim için) “Köprü” olarak belirledim.

EvTelefonu, IsTelefonu, CepTelefonu: Kişinin ayrı ayrı ev, iş ve cep telefonlarını girmek için bu alanları oluşturdum. Bu alanı “Metin” veri türünde tanımladım. Zira hem telefon numaraları üzerinde işlem yapmamız gerekmiyor hem de aşağıda göreceğimiz gibi –kolayca bu alana giriş yapabilmek amacıyla giriş maskesi tanımlarken- bu alanın “Metin” veri türünde olması gerekiyor.

Görüldüğü üzere alanları tanımlarken Türkçe karakterler kullanmamaya dikkat ettim. Yine “Tanım” bölümüne oluşturduğum her alan için bir açıklama yazdım. Bu açıklamalar Access uygulamamız açıkken alt kısımda durum çubuğunda görüntülenecek ve uygulamayı kullanan kişiye alanlara gireceği bilgiler konusunda yardımcı olacak.


4- Daha sonra Dosya>Kaydet yoluyla (veya “Tablo Tasarımı” araç çubuğundaki “Kaydet” simgesine tıklayarak) tablomu kaydettim. Tablomu kaydederken çıkan pencerede tablomun ismini "Tbl_TelefonRehberi" olarak belirledim.

[Resim: resim4cu1.gif]

5- Tablo tasarımını yaparken fark ettiğiniz gibi aşağıda “Alan Özellikleri” bölümü ve burada da “Genel” ve “Arama” adlı iki sekme penceresi bulunmaktadır. “Genel” sekmesinde yukarıda gördüğümüz veri türlerine göre değişebilen alan özellikleri sıralanmaktadır. Bu sekme yardımıyla tablomuzda oluşturduğumuz alanların özelliklerini ayarlayabiliriz. Veri türlerine göre az da olsa değişiklik gösterebilen bu özelliklerin her biri ayrı bir görevi yerine getirir. Örneğin “Metin” veri türünde olan bir alanın “Alan Boyutu” özelliğinden o alana kaç karakterlik bilgi girebileceğimizi, “Tarih/Saat” veri türünde olan bir alanın “Biçim” özelliğinden o alana hangi biçimde tarih ya da saat bilgisi gireceğimizi, “Gerekli” özelliğinden alana bilgi girmenin gerekli olup olmayacağını, “Resim Yazısı” özelliğinden tablomuzda (ya da formumuzda) alan adının ne olarak görüleceğini v.s. belirleyebiliriz.

[Resim: resim5ayl3.gif] [Resim: resim5bml5.gif]
[Resim: resim5ced2.gif]

Şimdi örneğimiz üzerinde, tablomda oluşturduğum alanların alan özelliklerini nasıl belirlediğimi tek tek anlatayım:

KayitSiraNo: Bu alanın, alan özelliklerinde hiçbir değişiklik yapmadım.

Adi: Bu alanda öncelikle “Alan Boyutu” özelliğini değiştirerek. (Varsayılan ayar genellikle 50’dir) 30 yaptım. Çünkü bir kişinin isminin 30 karakterden fazla yer kaplamayacağını düşünüyorum. (Bu, aynı zamanda veritabanımın gereksiz yere şişmesini de önleyecektir). “Resim Yazısı” özelliğine “ADI” yazdım. Zira tablomda veya formumda alan adının büyük harflerle ve Türkçe karakterlerle görünmesini istiyorum. “Geçerlilik Kuralı” alan özelliğine “is not null” deyimini yazdım. Zira bu alana mutlaka bilgi girilmesini istiyorum ve boş geçilmesini istemiyorum. Yine eğer “Adi” alanı boş geçilirse kayıttan çıkarken uyarı vermesi için “Geçerlilik Metni” alan özelliğine “ADI alanını boş geçemezsiniz” yazdım. (“ADI” alanına bilgi girilmezse diğer kayda geçerken bu uyarının çıkmasını ve bu alana bilgi girilmesini zorlamak amacındayım). Bunun yerine “Gerekli” alan özelliğine “Evet” değeri de verebilirdik ancak bu durumda çıkan uyarı biraz teknik olduğundan ben “Geçerlilik Kuralı” ve “Geçerlilik Metni”ni kullanmayı tercih ediyorum.

Soyadi: “Adi” alanındaki işlemlerin aynısını burada da yaptım. Yalnız burada “Resim Yazısı” alan özelliğini “SOYADI”, “Geçerlilik Metni” alan özelliğini de “SOYADI alanını boş geçemezsiniz” olarak belirledim.

DogumTarihi: İmlecim bu alandayken “Tarih/Saat” veri türünün alan özelliklerinin bulunduğu pencere altta açıldı ve “Biçim” alan özelliğinden “Kısa Tarih” biçimini seçtim. Bu alana bilgi girerken bir hata yapmamak, belli bir şekle göre girmek istediğimden bir giriş maskesi oluşturmaya karar verdim. Bunun için “Giriş Maskesi” alan özelliğinin sağ tarafındaki “…” simgesini kullanarak, sihirbaz yardımıyla açılan pencerede “Kısa Tarih” biçimini seçip “İleri” komutlarıyla bir maske belirledim. Sihirbazı sonlandırdığım zaman “Giriş Maskesi” satırında “00/00/0000;0;_” ifadesi yerini aldı. Bundan böyle bu alana bilgi girerken belli bir biçime uyarak kolaylıkla tarihi hata yapmadan girebileceğim. “Resim Yazısı” alan özelliğine de “DOĞUM TARİHİ” yazarak bu alandaki işimi bitirdim.

Adresi: Burada sadece “Resim Yazısı” alan özelliğine “ADRESİ” yazdım.

EPostaAdresi: Yine burada da sadece “Resim Yazısı” alan özelliğine “E-POSTA ADRESİ” yazdım.

EvTelefonu, IsTelefonu, CepTelefonu: Bu alanlarda önce alan boyutunu değiştirdim. Zira bir telefon numarasının alan kodlarıyla birlikte 11 karakterden fazla olamayacağını düşündüm. Ancak (biraz sonra göreceğimiz gibi bu alan için giriş maskesi oluştururken yardımcı karakterler de kullanacağımızdan) bu alan için 11’den fazla bir değer belirlemem gerekti. Bu nedenle “Alan Boyutu” özelliğini “15” yaptım. (Artık bu alana 15 karakterden fazla bilgi girmeme izin verilmeyecek). Yine burada da telefon numaralarımın girişini kolaylaştırmak ve hata yapmamak amacıyla giriş maskesi tanımlamaya karar verdim. Bunun için “Giriş Maskesi” alan özelliğinin sağ tarafındaki “…” simgesini kullanarak, sihirbaz yardımıyla açılan pencerede “Telefon Numarası” biçimini seçip “İleri” komutlarıyla bir maske belirledim. Son olarak “Resim Yazısı” alan özelliklerine “EV TELEFONU”, “İŞ TELEFONU”, “CEP TELEFONU” yazarak tablomu kaydettim.

Bunların dışında tablomda her kaydı hangi tarihte girdiğimi görebilmek amacıyla bir alan daha oluşturmak istedim. Bunun için tablo tasarım penceresinde “CepTelefonu” alanından sonraki satırda “BilgiGirisTarihi” adı altında bir alan oluşturdum. Bu alanın veri türünü “Tarih/Saat” yaptım ve “Tanım” bölümüne bir açıklama yazdım. Yukarıda “DogumTarihi” alanında yaptığım gibi bu alanın biçimini “Kısa Tarih” olarak belirledim. Ben bu alanda işlem yapmak ya da bilgi girmek istemiyorum, aksine yeni bir kayıt girmek istediğim zaman bu alanın günün tarihini kendiliğinden vermesini ve kaydı girdikten sonra da o tarihte kalmasını istiyorum. Bunun için “Varsayılan Değer” alan özelliğine “=Date()” ifadesini yazdım. Son olarak “Resim Yazısı” özelliğine de “BİLGİ GİRİŞ TARİHİ” yazdıktan sonra tablomla işimi bitirmiş oldum ve kaydettim.

[Resim: resim51vg4.jpg]

6- Bu aşamada Görünüm>Veri Sayfası Görünümü yoluyla tablomu veri sayfası görünümüde açtım ve tabloma bilgileri girmeye başladım. (Aşağıdaki resimde görüldüğü üzere tabloda her sütunun başındaki alan adları benim belirlediğim “Resim Yazısı” özelliğinde görülmekte olup, bu tablo için form oluşturduğumuzda da aynı şekilde görünecektir). Resimde görüldüğü üzere 4. kaydın "SOYADI" alanına bilgi girmeden bir sonraki kayda geçmek istediğimde “Geçerlilik Kuralı” belirleyip “Geçerlilik Metni”yle yazdığımız uyarı penceresi açıldı ve “SOYADI” alanı doldurulmadan sonraki kayda geçmeme izin vermedi.

[Resim: resim6yj8.gif]

Bu şekilde tablomuzu oluşturmuş ve verilerimizi girmiş olduk. Ancak tabloya bilgi girişi yaptıkça veritabanımız dolacak ve boyutları büyüyecektir. Veritabanımızın çok şişmesini önlemek için zaman zaman Araçlar>Veritabanı Hizmet Programları>Veritabanını Sıkıştır ve Onar yoluyla uygulamamızın boyutlarını küçültüp hataları giderebiliriz ancak; bunu otomatik olarak Access’in yapmasını sağlamak daha güvenli ve kolay bir yoldur. Bunun için Araçlar>Seçenekler>Genel sekmesinde “Kapatırken Düzenle” seçeneğinin onay kutusunu aktif hale getirip “Uygula” ve “Tamam” butonlarına basarsak bundan sonra uygulamanız üzerinde her çalışmanızdan sonra kapanırken Access kendiliğinden veritabanını sıkıştırıp onaracak ve dosyanızın boyutları bu şekilde çok fazla büyümeyecektir.



Buraya kadar genel ve en basit şekliyle Access veritabanında bir tablonun nasıl oluşturulacağını, veri türlerini ve alan özelliklerini görmüş olduk. Bundan sonra hazırlamaya çalışacağım derste ise yine aynı örnek üzerinden ve bu dersimizde oluşturduğumuz tabloyu kullanarak bir form oluşturmayı, formu biçimlendirmeyi, forma şekil vermeyi ve form üzerine denetimler yerleştirmeyi göreceğiz.

Bu konuyu hazırlarken

24 Derste Access 2003 (Zeydin Pala)
Full Microsoft Access 2003 (Nihat Demirli/Yüksel İnan)
Access XP (Osman Gürkan)

kitaplarından ve kendi bilgi ve deneyimlerinden yararlandım. Bu nedenle bazı hatalarımın olması doğaldır. Bunların hoşgörüyle karşılanması dileğiyle…


Saygılarımla…

gitarisyen


Eklenti Dosyaları
.rar   TelefonRehberim.rar (Boyut: 8,2 KB / İndirilme: 1.493)



  Alıntı
Bu mesajı beğenenler:


Benzer Konular...
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  Veri tabanı tasarımı için 20 ipucu (Access & SQL Server) Mehmet Eser 4 7.576 10-05-2012, 09:07
Son Mesaj: Berkant Öztürk
  DERS 4/3: ACCESS'TE FORM OLUŞTURMA (FORM DENETİMLERİ) - (Videolu Anlatım) gitarisyen 4 17.942 03-09-2011, 13:11
Son Mesaj: Berkant Öztürk
  DERS 4/2: ACCESS'TE FORM OLUŞTURMA (FORM BİÇİMLENDİRME) - (Videolu Anlatım) gitarisyen 2 13.439 24-04-2011, 14:12
Son Mesaj: gitarisyen
  DERS 4/1: ACCESS'TE FORM OLUŞTURMA (FORM OLUŞTURMA METODLARI) - (Videolu Anlatım) gitarisyen 2 25.760 20-04-2011, 10:19
Son Mesaj: gitarisyen
  DERS 2: ACCESS NESNELERİ (BİLEŞENLERİ) gitarisyen 0 29.738 23-03-2008, 00:02
Son Mesaj: gitarisyen
  DERS 1: ACCESSİ AÇMAK VE BAŞLATMAK (Resimli Anlatım) gitarisyen 1 38.002 22-03-2008, 23:03
Son Mesaj: gitarisyen

Foruma Git:


Bu konuyu görüntüleyen kullanıcı(lar): 1 Ziyaretçi