Paylaşım Sitesi  

Geri git   Paylaşım Sitesi > Bilgisayar Merkezi > İşletim Sistemleri > Windows
Kayıt ol Yardım Üye Listesi Ajanda Forumları Okundu Kabul Et

Tags: , , ,

Cevapla
 
LinkBack Seçenekler Stil
  #21 (permalink)  
Alt 06-15-2007, 01:20
Kovuldu.!!
 
Üyelik tarihi: Jun 2007
Mesajlar: 237
Tecrübe Puanı: 0
X_MaSTeR is on a distinguished road
X_MaSTeR - MSN üzeri Mesaj gönder
Standart

Önce bir kere daha kurmak istediğimiz ilişkinin amacını tekrar edelim:

yeni adres defterimizi oluşturduğumuz sırada öyle bir an olabilir ki,

dostlarımızın çocuklarını gösteren, veya çocukların ailelerine göre

sıralandığı bir liste yapmak isteyebiliriz. Böyle bir yeni tablo

oluşturmaya kalktığımızda, Access'in hangi çocuğun hangi aileye ait

olduğunu bilmesi gerekir. Bunu iki tabloyu ilişkilendirerek veya başka

bir ifadeyle Access'e, hangi çocuğun hangi aileye ait olduğunu nasıl

belirleyeceğini söyleyerek yapabiliriz. Access'e şunu söylemek

zorundayız: Çocuklar tablosundaki kayıtlarla Aile tablosundaki

kayıtları birleştirirken birinci tablonun Aile Sıra No alanındaki

değerin Çocuk tablosundaki kaydın aynı isimli alanındaki değerle

eşleşip eşleşmediğine dikkat et; eğer bu veriler aynı ise o zaman bu

çocuk o aileye ait demektir; iki kaydı birleştirebilirsin.

Bunu söylemenin yolu ise çok kolay: İlişkiler tablosuna ait kutudaki

AileSıraNo satırını Mouse işaretçisiyle tutup, götürüp Çocuk

tablosundaki AileSıraNo satırının üzerine bırakın. (İlişkiler

penceresini açtığınızda tablolarına ilişkin kutuları göremiyorsanız,

İlişkiler menüsünden Tablo Göster maddesini; açılacak kutuda kayıtları

arasında ilişki kuracağınız, dolayısıyla görüntülenmesini istediğiniz

tabloları seçerek Ekle düğmesini tıklayın.)

Sürükleme sırasında Mouse işaretçisinin dikdörtgen ilişki simgesine

dönüştüğünü göreceksiniz (işaretli). Mouse işaretçisi bırakacağınız

yere dikkat etmelisiniz: Access 2000, dörtgeni hangi alan adı üzerinde

bırakırsanız, o alanı ilişkilendirir. Mouse'un sol düğmesini

bıraktığınız anda İlişkileri Düzenle diyalog kutusu açılacaktır.

Burada solda ilişkinin başladığı tablo ve alan ile ilişkinin kurulduğu

tablo ve alan gösterilmektedir. Her ikisinin de seçme düğmelerini

tıklayarak başka alanlar seçebilirsiniz. Bu listenin altında, "Bilgi

tutarlılığına zorla" seçeneğine işaret koyarsanız, Access 2000 size iki

seçenek daha verir: ilişkinin sol tarafındaki alan güncelleştirilirse,

bu ilişkiye dahil tabloların da güncelleştirilmesi, alan silinecek

olursa diğer tablodaki kayıtların da silinmesini sağlayabilirsiniz.

(Güncelleştirme kullanışlı bir seçenek olmakla birlikte, silme işlemini

otomatik hale getirmek, istemeden bilgi kaybına uğramanıza yol

açabilir.) İlişkileri Düzenle kutusunun sağ tarafındaki düğmelerden

Birleştirme Türü düğmesini tıklaksanız, ilişkinin yönü ve türünü

belirleme imkanını veren, üç seçenekli Birleştirme Özellikleri kutusunu

açmış olursunuz. Burada yapacağınız tercihler, hangi tablodan hangi

kaydın alınacağını belirler. (Sırasıyla her üç seçeneği seçtiğinizde,

ilişki çizgisinin ucundaki okların yönünün nasıl değiştiğine dikkat

edin.)

Kutuları sırasıyla kapattığınızda, iki tabloyu ilişkilendirmiş, başka

bir deyişle Access 2000'i bu tabloları kullanarak yapacağınız

veri-işleme hazırlamış olursunuz. Bir veritabanındaki tablolar arasında

ilişkileri oluştuğunuz zaman Access 2000, hiç bir yapmayacak, söz

gelimi ortaya yeni bir tablo veya rapor çıkartmayacaktır. Bunu yapması

için gerekli talimatı daha sonra vereceğiz. Şimdilik sadece Access'e,

bu talimatı yerine getirmesi için gerekli bilgiyi vermiş,

veritabanımızın tabloları arasındaki bağları tanıtmış olduk.
Endeks

Access 2000'in veri-işlem işleri için yapması gereken bir diğer

hazırlık ise Endeks çıkartmaktır. Veritabanımızın tablolarını neden

endekslettirmek isteriz? Daha sonra yapacağımız veri-işlemleri hızlı

olsun diye? Access 2000'ın endeksi, tıpkı bir kitabın arkasındaki

endeks gibi çalışır: aradığınızı kolay bulursunuz. Burada bulma

işlemini kitap okurundan farklı olarak kullanıcı değil Access

yapmaktadır. Access, kendi endekslerini, vereceğiniz sorgu

talimatlarını icra ederken, tabloları sıraya sokarken, rapor

oluştururken ve arama yaparken kullanır.

Köprü, not ve OLE nesnesi içeren alanlar dışındaki tür alan türleri

endekslenebilir. Sadece Birincil Anahtar olan alan değil, bütün alanlar

(türü uygunsa) endekslenebilir; birincil anahtar alanı otomatik

endekslenir. Endeks, sorgu, sıralama ve aramayı hızlandırır; fakat bir

veri tabanında ne kadar çok alan endeksleniyorsa, Access 2000'in

veriişlem hızı o kadar azalabilir. Access 2000'e tablo tasarımı

sırasında, endeks yaparken birden fazla benzer kayıt bulunması halinde

ne yapması gerektiğini biz söyleriz. Tablo tasarım penceresinde bir

alan türünü tıkladığınızda, alan türü elverişli ise, pencerenin Alan

Özellikleri bölümünde Sıralı satırı belirir. (Access 2000, endekse

yardım dosyalarında "dizin" derken burada "Sıralı" demeyi tercih

ediyor. Ama bu kadar kusur, kadı kızında da olur!) Bu satırın içini ve

sağında belirecek seçme okunu tıklarsanız, üç seçeneğiniz bulunduğunu

görürsünüz: "Endeks yapma!" anlamına "Hayır" ; "Endeks yap, ve

tekrarlara aldırma!" anlamına "Evet, Tekrarlama Var"; ve "Endeks yap ve

bu arada tekrarları yakala!" anlamına "Evet, Tekrarlama Yok." Bu

sonuncu tercihi seçerseniz, Access, endekslenmiş alanlarda, tüm

kayıtların benzersiz olmasına dikkat eder ve sizi uyarır.

Böylece, veritabanımızı birincil anahtarları, ilişkileri ve endeksi ile

veri-işleme hazırlamış bulunuyoruz. Bundan sonra, tablolarımızı

sorgulayabilir; tablolar ve sorgulardan raporlar hazırlayabiliriz.

Sorgular


Verilerimizi, kelime işlem programının içinde tablolar oluşturup, bu

tabloların içine yazmıyorsak, bunun bir nedeni olabilir: Verişlem

programlarının sorgu aracı. Sorgu veya Query, veritabanı fikri ortaya

atıldığı günden beri var. Hatta, veritabanı dosyalarının, diğer

bilgisayar kayıt dosyalarından ayrışmasını sağlayan unsur, sorgudur.

Bir veritabanı dosyasındaki bilgileri sorgulama ve bu verilerden yeni

bilgiler elde etme ihtiyacı o kadar belirgin hale geldi ki, bilgisayar

mühendisleri sırf bu iş için bir dil bile icad ettiler: Sorgu Dili

(Query Language).

Ne var ki, veritabanı biçimi kadar sorgulama dili ortalığı kaplayınca,

belli başlı bilgisayar donanım ve yazılım firmaları ve üniversiteler

biraraya gelerek, bu kargaşaya son vermek üzere kolları sıvadılar; ve

ortaya SQL (Structured-Yapılandırılmış Sorgu Dili) çıktı.
SQL'in Kısa Tarihi

SQL, 1980'lerin başlarında Sybase firması tarafından UNIX ortamı için

geliştirildi. Microsoft firması, Sybase'den ruhsatını aldığı bu

teknolojiye dayanan Microsoft SQL Server programını 1987'de Windows 3

için piyasaya sürdü. Ertesi yıl, MS, Sybase ve Ashton-Tate firmaları

MSSQL-Server'nın OS/2 sürümünü ortaklaşa hazırladılar ve daha sonra

IBML'in de katıldığı bu çaba 1991'e kadar sürdü. Ashton-Tate'in bu

birlikten 1990'da çekilmesi üzerine, Sybase ve MS yeni bir anlaşma

yaparak, dili ve Server'ı, Windows NT ortamı için birlikte geliştirmeye

başladılar. Bu çabanın sonucu SQL Server programı oldu. Bu program,

bugün 7'nci sürümündedir.

Bir taraftan endüstri çapında geçerli bir teknoloji ve bu teknolojinin

başlıca aracı olan bir dilin adı olarak SQL, diğer taraftan Microsoft

firmasının bu teknoloji ve dili kullanan bir programının adında (SQL

Server) kullanıldığı için, sadece Microsoft'a ve Windows ortamına ait

sanılabilir. Bu doğru değildir. SQL, bugün piyasada bulabileceğiniz

belli başlı veritabanı oluşturma ve veri-işlem programlarının ortak

dilidir. Microsoft Access, 1992 yılında dünyaya geldi; ve ilk günden

itibaren tek başına bir veritabanı oluşturma ve işleme programı olarak

değil, fakat daha büyük veritabanı dosyalarına, veri bankalarına

bağlanabilen ve oradaki verileri işleyebilen bir program olarak

tasarlandı. Access 2000, Access Projesi (Dosya menüsünden Yeni

maddesini ve açılan şablon kutusunda "Proje (Yeni Veritabanı)" adlı

simgeyi tıklayın) dosyaları oluşturarak, SQL Server dosyalarına

ulaşabilir; bu dosyalarda SQL sorguları çalıştırabilir.

İyi bir Access kullanıcısı, bu programla büyük veritabanı mimarisine

adam atabilir; ileri düzeyde veri-işlem tekniklerini öğrenebilir. Veri

Madenciliği (Data Mining) teknolojileri, Online Analytical Processing

(OLAP) teknikleri ve günümüzde veri yönlendirmeli Web uygulamaları,

SQL'e dayanan gelişmelerdir. Access'te öğreneceğiniz SQL, size bu

teknolojilerie ilk adımı atmayı sağlayacaktır.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
  #22 (permalink)  
Alt 06-15-2007, 01:21
Kovuldu.!!
 
Üyelik tarihi: Jun 2007
Mesajlar: 237
Tecrübe Puanı: 0
X_MaSTeR is on a distinguished road
X_MaSTeR - MSN üzeri Mesaj gönder
Standart

Basit Sorgu

Access'te SQL'e ilk adım ise daha önce gördüğümüz Süzme işleminin son

bölümünde kısaca sözünü ettiğimiz Gelişmiş Süzme/Sıralama aracı ile

atılabilir. Aslında Access'te yaptığımız seçme veya Form yoluyla süzme

işlemleri, bir sorgu işlemidir; ancak bu sorgunun SQL komutunu (veya

Access'in kullandığı kelimeyle, "deyimini") Access kendisi oluşturur.

Gelişmiş Süzme/Sıralama (GSS), diğer süzme işlemlerine göre "ileri"

sayılırsa da, bir sorgu deyimi (SQL komutu) yazmanın yanında basit

sayılabilir. Bu sebeple, tabir yerinde ise Access'in desteklediği bir

sorgu geliştirme işlemi olan GSS'yı sorguya giriş konusu olarak ele

alabiliriz. GSS'yı k*****ığımız anda sorgu tekniğini kavramış oluruz.

Access'in sorgu tekniği ise daha genel SQL'e giriş sayılır.

GSS'nin bir sorgu aracı olarak sınırlamaları vardır. Sadece bir

tablonun içerdiği verilerle çalışabilir; birden fazla tablo veya başka

sorguların sonuçlarını kullanamaz. Sonuç itibariyle GSS de bir tabloda

belirli ölçütleri karşılayan kayıtları görünteleme aracından başka bir

şey değil; birden çok tabloda sorgu yapmak için gerçek sorgu aracını

kullanıp, gerçek SQL komutları yaszmamız gerekir. GSS'te verilere

sadece basit sorular sorabiliriz. (Daha gelişmiş sorgular için, gerçek

sorgu aracını kullanırız.) GSS ile yapacağımız süzme sonunda

görüntülenen kayıtların bütün alanları görüntülenir; oysa gerçek

sorguda ortaya çıkacak yeni tablo veya formda hangi alanlar olsun

istiyorsanız o alanlar olur. Bu sınırlamalarına rağmen (belki de bu

yüzden) GSS, Access'te sorguya giriş için mükemmel bir adım sayılır.

Şimdi bir tabloyu açın ve Kayıtlar menüsünden önce Süz, sonra Gelişmiş

Süzme/Sıralama maddesini seçin.

Bu, eğer başta tablo ekleyebilseydik, sorgu hazırlama penceresinin ta

kendisi olurdu. GSS, belirttiğimiz gibi sadece bir tablo ile çalışır;

ve o tablo da seçilmiş olarak karşımıza gelir. Bu penceresi

inceleyelim. Üstte, sorguda (pardon, süzgeçte) kullanılacak tablo yer

alır. Buraya alan listesi denir. Altta ise süzgeci oluştururken

kullanacağımız, şimdilik boş olan, sorgu tasarım kılavuzu yer alır.

Burada sadece sözme amacıyla yararlanacak da olsak oluşturacağımız

"şey" gerçekten bir sorgudur. Bu bölümde, Alan isimli birinci satırın

birinci sütundaki kutusunun içini, sağda seçme oku belirince oku

tıklayın: yukarıda alan listesinde yer alan alan adlarının burada

sıralandığını göreceksiniz.

Sorgu, burada olduğu gibi ileri düzeyde süzme işlemi için bile olsa,

"veriye soru sorulması" anlamına gelir. GSS'de bir sınıftaki

öğrencilerin sınav notlarını içeren tablomuza örneğin "Son üç sınavda

4,5'dan aşağı not almış öğrenciler kimler?" diye sorabiliriz. Ya da

yemek tariflerini derlediğimiz bir veritabanında, "Kebaplar" tablosuna

"İçinde biber olmayan ve kıyma ile yapılmayan kebaplar hangileri?"

sorusunu yöneltebiliriz. Müzik kaset ve CD'lerinizin veritabanındaki

"Türküler" tablosuna "Yavuz Bingöl'ün 1996'dan sonra çıkmış kaset ve

CD'leri hangileri?" diye sorabiliriz. Ya da elimizdeki Adres Defteri

veritabanında Aile tablosuna "Istanbul ve Niğde'de oturan ve kart

yollamam gereken dostlarım kimler?" şeklinde bir soru yöneltebiliriz.

Bunun için, Alan sırasının birinci sütundaki kutusunun seçme okunu

tıklayarak, alan listesinden Şehir'i seçmemiz gerekir. Sonra, GSS'nin

sadece süzme değil aynı zamanda sıralama yaptığını hatırlayarak, ikinci

sıradaki Sırala kutusunun sağındaki seçme okunu tıklayarak, Artan,

Azalan ve Sırasız seçeneklerinden Artan'ı seçelim. Ve sıra geldi, süzme

için uygulatacağımız ölçütleri belirlemeye. Ölçüt satırının içini

tıklayıp "Istanbul" yazıyoruz. Tırnak işaretlerini siz koymazsanız,

Access koyar. Istanbul VE Niğde'de oturan dostlarımızı birlikte seçmek

için, alttaki VEYA satırına da "Niğde"yazalım. Buraya kadar, tabloya

soracağımız sorunun birinci bölümünü sormuş olduk: Istanbul ve Niğde'de

oturanlar. Şimdi sorgunun ikinci bölümüne geliyoruz: Kart göndermem

gerekenler. İkinci bölümdeki veritabanı alıştırmasını yaptıysanız,

"KartYolla" alanının türünü "Evet/Hayır" yaptığımızı hatırlıyor

olmalısınız. Şimdi, Alan satırının ikinci sütununda KartYolla alanının

seçin; ("Evet" değerlerinin sıraya sokulmasına gerek olmadığına göre

ikinci satırı atlayabilirsiniz) ve Ölçüt sarımına Evet yazın. Araç

çubuğundaki Süzgeçi Uygula simgesi tıklayın ve tablonuzun sadece

Istanbul veya Niğde'de oturanlardan kendilerine kart yollamam

gerekenleri gösterdiğini, diğerlerinin süzüldüğünü ve süzgecin diğer

tarafında kaldığını göreceksiniz.

Kendi kendinizi kutlayabilirsiniz: çünkü sadece Access'in gelişmiş

süzme ve sıralama aracını kullanmakla kaldık; SQL komutu yazmaya da ilk

adımı attık. Şimdi artık Access'te ciddi sorgulama işleri yapabiliriz.
Gerçek Sorgu: Basit Seçme

"Sorgu, veriye soru sormaktır!" demiştik. Kimi zaman bir tablonun

cevaplayabileceği soruları, süzme ve hatta sıralama ile

çözümleyebiliriz. Fakat elde iki veya daha çok tablo varsa ne yapanız?

Diyelim ki, siz sadece bir sınıfın değil, beş ayrı sınıfın

öğretmenisiniz ve sınıflarınızda başarı oranını etkileyen garip bir

eğilim farkettiniz. Sizin derslerinizde kız öğrenciler genellikle

başarısız oluyor. Sadece bir sınıfın öğretmeni olsanız, bu kuşkunuzun

yerinde olup olmadığını sınamak için iki süzme işlemi size sonucu

verirdi. (Nasıl?) Fakat beş ayrı sınıf söz konusu olunca, her tablonun

kendi içindeki yüzdeler, anlamlı olmayabilir. Size bütün tablolardan

seçme-süzme yapan bir araç gerekiyor. Ya da beş tabloya birden soru

sormanızı sağlayacak bir araç. Bu aracın adı Sorgu'dur.
Access'in Sorguları

Access 2000, bize altı ayrı sorgu türü veriyor. Bunlardan Basit Seçme

sorgusu, biraz önce ele aldığımız Gelişmiş Süzme/Sıralama aracının

birden fazla tablo kabul edebilenidir. Çapraz sorgu, verileri

gruplandırarak, bunlar için sayım, toplam ve ortalama gibi hesapları

yapar. Örneğin öğrencileri cinsiyetlerine ve derslere göre

gruplandırıp, aldıkları not ortalamalarını göstermek., çapraz tablo

yapmaktır. Çapraz sorgu bir tabloda çalıştığı için, örneğin

öğrencilerinizin notları derslere göre ayrı tablolarda ise bunları bir

tabloda basit seçme sorgusuyla birleştirmeniz gerekir. Tablo yapma

sorgusu, seçme sorgusundan farklı olarak, çalıştığı zaman ortaya bir

tablo penceresi çıkmaz; Access, sizden daha önce aldığı isimle bir

tablo oluşturur. Bu tablo veritabanının parçası haline gelir. Oysa

diğer sorguların sonuçları ancak sorgu çalıştığı sırada vardır.

Güncelleştirme sorgusu, sorgu tasarımı sırasında verdiğiniz bir sabit

değeri veya verdiğiniz bir deyimin o sırada bulunacak sonucunu, tayin

ettiğiniz bir alana yazar. Bu, "Bul-Değiştir" gibi basit bir araç

olmayıp, her kaydı, belirli bir formüle veya kıydın kendi içindeki bir

değere göre yeniden hesaplayabilir. Ekleme ve Silme sorguları da

güncelleştirme sorgusu gibi, ya farklı tabloların kayıtlarını birbirine

ekler, ya da tablolardaki kayıtları siler. Bunların dışında tasarım

sırasında yüklediğiniz işlevlerin bir sonucu olarak bir sorgu Parametre

sorgusu (verdiğiniz görevi yapabilmek için kullanıcıdan bir değer

girmesini isteyen sorgu), SQL Sorgusu (SQL komutlarını kullanarak

birleşim, doğrudan sorgu, veri tanımla ve alt sorgu gibi veritabanınızı

ODBC yoluyla dışarıdan kullanacak kullanıcıları gözönünde tutarak

hazırladığınız sorgular) ve otomatik arama sorgusu (yeni bir kaydın

bazı alanlarının otomatik olarak doldurulmasını sağlayan sorgu,

AutoLookup sorgusu) diye de adlandırılabilir.

Basit Seçme Sorgusu (BSS) dışındaki sorgular, ileri düzeyde Access

bilgisi ve hatta bir ölçüde Programlar İçin Visual Basic for

Applications (VBA) bilgisi gerektirebilir. BSS'yi iyi kavrayarak, bu

ileri düzeydeki sorgular için mükemmel bir başlangıç yapabilirsiniz.

BSS'in temel özelliklerini sıralarsak, şunlar karşımıza çıkıyor:

1. Sorguda birden fazla tablo kullanabilirsiniz; tablolar arasında

oluşturduğunuz ilişkiden yararlanabilirsiniz.
2. Sorgu sonucu sadece istediğiniz alanları görüntüleyebilir; bu sırada

gerekli olmayan sütunları yeni sorgu sonucu tablosuna almayabilirsiniz.
3. Sorgu sonucu oluşacak tabloda alanları istediğiniz sütun sırasına

sokabilirsiniz.
4. Seçme işlemi sonucu kaç kaydın görüntülenmesini istiyorsanız, o

kadar kayda yer verebilirsiniz.
5. BSS (ve diğer) sorguları icra ettikten sonra, sorguya konu olan

tabloların değerlyeri değişmez; başka bir deyişle sorgular tabloları

sadece "okur," içeriğini değiştirmezler. Bir sorgu işledikten sonra

tablo oluşturuyorsa (Tablo Yapma Sorgusu ise) ortaya yeni bir tablo

çıkar. Sorguyu tekrar çalıştırdığınızda bu tablo yeniden yazılır ve

Access 2000, Özelleştir kutusunda yaptığınız uyarı ayarlarına göre sizi

uyarabilir. İkinci bölümdeki Adres Defteri alıştırmasını yaptıysanız,

bu veri tabanını açın ve birlikte bir BSS oluşturalım. Adres Defteri

veritabanını oluşturmadı iseniz, aşağıdaki adımları kendi

veritabanınıza uygulamak zorundasınız. Burada yapmak istediğimiş iş

veya Access 2000'e sormak istediğimiz soru şu: Istanbul'da oturan ve

çocuğu olan dostlarımız kimler, çocuklarının adı ne? Veritabanı dosyası

açıldığında, veritabanı penceresinde, nesneler listesinde Sorgular

satırını tıklayın. Sorgular penceresinde "Tasarım görünümünde sorgu

oluştur" ve "Sihirbazı kullanarak sorgu oluştur" şeklinde iki kısayol

göreceksiniz. Pencerenin araç çubuğundaki Yeni düğmesini tıklarsanız,

karşınıza daha çok imkan sunan bir sihirbazın ilk adımını içeren bir

kutu açılacaktır. Bu kutudaki Basit Sorgu Sihirbazı maddesi, Sorgu

nesnesi penceresindeki "Sihirbazı kullanarak sorgu oluştur" kısayolu

ile aynı sonucu verir. İster Yeni'yi tıklayıp açılan kutudan Basit

Sorgu Sihirbazı maddesini seçin, ister "Sihirbazı kullanarak sorgu

oluştur" kısayolunu tıklayın.

BSS sihirbazının ilk penceresinde hangi alanların sorguda bulunmasını

istediğinizi belirtmeniz gerekir. Bir sorgu sadece tablodan değil sorgu

sonucundan da seçme yapabilir; dolayısıyla sol üstteki seçmeli listede

veritabanınızda mevcut bütün tablolar ve sorgular sıralanır. Bu listede

seçilmiş olan tablo veya sorgunun içerdiği alanlar ise sol altta

kullanılabilir alanlar listesinde yer alır. Veritabanımıza soracağımız

sorunun birinci bölümü "Istanbul'da oturan" dostlarımızın seçilmesi

olduğuna göre, bu kişilerin kayıtlı olduğu Aile tablosunu seçmek

zorundayız. Bu alanlardan hangileri BSS sonucu oluşturulacak tablomuzda

yer alsın istiyoruz? Bir kere dostlarımızın adını ve soyadını seçmemiz

gerekir. Seçilecek kişilerin tümünün Istanbul'da oturanlar olması için

Şehir alanının da seçilmesi şart. Bunu yapmak için arzu ettiğimiz

alanın adını bir kere tıkladıktan sonra ortadaki düğmelerden en üstte

olan sağa doğru tek oklu düğmeyi tıklıyoruz. Soldaki alanların tümünün

sorgu sırasında kullanılabilir olmasını isteseydik, ikinci sıradaki iki

oklu düğmeyi tıklamamız gerekirdi. Bir alanı yanlışlıkla sağa

geçirirsek, üçüncü sıradaki sola doğru tek oklu düğmeyi tıklayarak

sorguda kullanabileceğimiz alanlar listesinden çıkartırız. Bu alanların

tümünü sorgu listesinden çıkartmak için el alttaki iki oklu düğmeyi

tıklayabiliriz.

Veritabanına sorduğumuz sorunun ikinci bölümü, Istanbul'da oturan

dostlarımızdan sadece çocukları olanların seçilmesini, üçüncü bölümü

ise çocukların adlarının da listelenmesini gerektirdiğine göre, bize

Çocuklar tablosu ve bu tablodaki çocuk adları alanı da gerekiyor. Şimdi

Tablolar ve sorgular kutusunun seçme okunu tıklayarak açılan listeden

Çocuklar tablosunu seçelim, sonra da bu tablonun Adı adlı alanını sağa

aktaralım. Ama hemen İleri düğmesini tıklamayın.

Şimdi bir an için kendimizi Access 2000'in yerine koyalım: Biraz sonra

bir seçme işlemi yapacağız; çocuğu olan ve Istanbul'da oturan kişileri

seçeğiz. Istanbul'da oturanları seçmek kolay: Eğer Şehir alanındaki

değer "Istanbul" ise bu kişiyi seçebiliriz. Peki bu kişilerin çocuğu

olup olmadığını nasıl bilebiliriz? Veya şöyle soralım: bu kişilerin

çocukları varsa bunları Çocuklar tablosunda nasıl belirleyebiliriz? Bu

iki tablo arasında ilişki sağlayan alanla! Veritabanı tasarımında en

zor nokta, tablolarda gereksiz yere tekrarı önlemek amacıyla alanları

başka tablolara aktarmak gerektiğinden söz ettiğimiz sırada, tablolar

arasında ilişki kurmamız gerektiğini belirtmiştik. İkinci bölümden

hatırlıyorsanız, Aile tablosuyla Çocuklar tablosu arasındaki ilişkiyi,

yani hangi çocuğun hangi aileye mensup olduğunu Aile Sıra No alanındaki

bilgiyi iki tabloda ortak kullanarak biliyoruz. Başka bir deyişle bir

çocuğun Aile Sıra No alanındaki değer, bu çocuğun hangi ailenin üyesi

olduğunu gösteriyor. Sorgu sırasında Access 2000, şöyle düşünebilir:

"Hımm. Istanbul'lu bir kişiyi seçeyim; sonra bu kişinin Aile Sıra No

alanındaki değeri, Çocuklar tablosundaki aynı adlı alanda arayayım;
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
  #23 (permalink)  
Alt 06-15-2007, 01:22
Kovuldu.!!
 
Üyelik tarihi: Jun 2007
Mesajlar: 237
Tecrübe Puanı: 0
X_MaSTeR is on a distinguished road
X_MaSTeR - MSN üzeri Mesaj gönder
Standart

eğer bu iki değer aynı ise bu çocuğun adını alıp, Istanbullu kişi ile

birlikte kaydedeyim." Access'in düşündüğünü uygulayabilmesi için, ona

her iki tablodan Aile Sıra No alanını da vermemiz gerekir. O halde önce

açık olan Çocuklar tablosunun, sonra da yeniden Aile tablosunu seçerek,

Aile Sıra No alanlarını sağa aktarın. Bu kutuda işimiz bittiğine göre

Tamam'ı tıklayabilirsiniz. (Sorgu kaç tablodan kaç alan seçmeyi

gerektiyorsa, o kadar alan seçebilirsiniz. Buradaki örnek bu alanları

gerektirdiği için burada duruyoruz; sizin örneğiniz başka tablolardan

başka alanlar gerektiyorsa, seçmeye devam edin.)

Basit sorgu sihirbazının ikinci penceresi, sorgu sonucu oluşturulacak

tabloda kaç kayıt olacağını belirler. Varsayılan değer, seçtiğiniz

tablolardaki tüm kayıtların sorgu sonucu oluşacak tabloya alınmasıdır.

Fakat diyelim ki size sorgu sonucu oluşacak tablonun ilk 5, 25 veya 100

kaydını içeren özet bir tablo da oluşturabilirsiniz. Özet tablo için

Özetk seçeneğini seçin ve Özet Seçenekleri düğmesini tıklayın. Bu iş

bittikten sonra veya Ayrıntılı seçeneğini seçerek, İleriyi

tıklayabilirsiniz. Üçüncü pencerede yeni sorgunuza isim vermeniz, Son'u

tıkladığınızda sorgunun icra edilmesini mi, yoksa sorguda sihirbazın

yapmadığı değişiklikleri yapmak üzere tasarım görünümünün açılmasını mı

istediğinizi belirtmeniz gerekir. Burada yardım isteyip istemediğinizi

belirteceğiniz bir başka seçenek daha var. Tasarımı güç sorgular

yaptığınızda, Access 2000'in yardım penceresinin açılmış olması size

kolaylık sağlar. Şimdi, sorgunun tasarımı ile ilgili işlerimiz

bitmediği için ikinci seçeneği işaretleyerek Son'u tıklayalım.

Access 2000, seçtiğiniz iki tabloyu sorgu tasarım penceresinin üst

bölümünde gösteriyor. İki tablo arasındaki ilişki çizgisine dikkat

edin; bu ilişkiyi ikinci bölümdeki alıştırma sırasında kurmuştuk.

Access, seçtiğiniz altı alanı, değerleri ne olursa olsun, bütün

kayıtları ile seçmeyi (ve bunu yaparken iki tabloyu birleştirmeyi)

sağlayan bir sorgu tasarımı öneriyor. Bütün alanların seçildiğini,

sorgu tasarım penceresinin alt yarısındaki kılavuzda, Alan satırındaki

alan adlarından anlıyoruz. Bu satıra yazılan alan adlarını inceleyin;

tablo adı ile tablonun alan adı nasıl birleştiriliyor? İkinci satırda

ise tablonun adı belirtiliyor. Sırala satırının boş bırakıldığına

dikkat edin. Göster satırındaki kutuların işaretli olması bu alanın

sorgu sonucu oluşturulacak tabloda gösterileceği anlamına geliyor. Ve

son olarak Ölçüt satırlarının boş olduğuna dikkat edin. Biz sorgumuzun

sadece çocukları olan Istanbulluları kapsamasını istiyorduk. O halde,

Şehir alanının sütununda, Ölçüt satırına "Istanbul" yazmamız gerekiyor,

ki sadece Istanbullular seçilsin. Peki bunlar arasından çocukları

olanları nasıl seçeğiz, Access ile çalışma konusunda ustalığınız

ilerledikçe, bu tür şartlı seçmeleri (SQL deyiminde "eğer" şartı geçen

sorguları) oluşturma becerisi de edineceksiniz. Fakat şimdilik böyle

bir sorgu deyimi oluşturmaya gerek yok: Access, çocuklar listesindeki

Adı değerlerini seçerken, bunların Aile Sıra No değeri Aile tablosunda

Aile Sıra No değerine denk gelmeyen kayıtları seçmeyecektir. (Aile

tablonuzda çocuksuz Istanbullu dostlarınız, Çocuklar tablosunda da

Istanbullu ailelere mensup olmayan çocuklar bulunmasını sağlayın, ki

BSS'in gerçekten işleyip işlemediğini sınayabilelim.) Şimdi sorgu

tasarım penceresinde Şehir sütununda Ölçüt satırına "Istanbul" yazın.

Sorgu sonucu oluşacak yeni tablomuzda iki ayrı Aile Sıra No sütununa

gerek olmadığı için Çocuklar tablosundan alınacak Aile Sıra No

sütununun Görüntüle satırındaki işareti kaldırabiliriz; fakat BSS'in

tablonun ilişki bağından nasıl yararlandığını görmek için şimdilik bu

işareti kaldırmayın. Özetle, Access 2000 BSS sihirbazının tasarımına

sadece Şehir alanında Ölçüt olarak "Istanbul" kelimesini eklemiş olduk.

Bu sırada Access 2000'in araç buçuğunda ünlem işareti şeklinde bir

simge belirdiğini görüyor musunuz? "Çalıştır" isimli bu araç, Access

2000'e "Bu sorguyu icra et ve sorduğum sorunun cevabını bana tablo

alarak göster!" komutunun kısayoludur. Şimdi bu simgeyi tıklayalım.

İşte sorumuzun cevabı:
Aile listemizde yer alan Şehir alanındaki değer "Istanbul" olan ve

Çocuklar tablosunda kendilerine ait çocuk bulunan dostlarımızın

listesi! Access ile çalışma becerinizi arttırdıkça, her çocuğu mensup

oldukları aile ile aynı satıra "Çocuk 1," "Çocuk 2" ... şeklinde yeni

sütunlar halinde sıralamayı da sağlayabilirsiniz. Bu sorgunun verdiği

sonuçları doğru bulmuyorsanız, tekrar tasarım görünümüne

dönebilirsiniz. Bunun için Access 2000 araç çubuğunda tasarım görünümü

simgesini tıklayın. Sorgunun tasarımında istediğiniz değişikleri

yaptıktan sonra Çalıştır simgesini tıklayabilirsiniz. Sorgunun

istediğiniz sonucu verdiğini gördükten sonra kapatmaya kalktığınızda

Access 2000 sorguyu veritabanı dosyasının içinde kaydededecektir.

Bir BSS tasarlamaya çalıştığınız sırada seçtiğiniz tablolar ilişkili

değilse, Access 2000 sizi uyarır ve bu ilişkiyi kurmadan devam etmek

istemez. Sorgu tasarımı sırasında seçtiğiniz tablolar arasındaki ilişki

çizgisini silerek sorguyu çalıştırırsanız, anlamlı olmayan sonuçlar

alırsınız.

İleri Sorgular



Access 2000 ile gerçek bir sorgu oluşturduğuma göre, şimdi bir adım

ileri giderek, sorgu tasarımında oluşturacağımız bir "deyim"

aracılığıyla tablolarımızdaki alanlardan elde edeceğimiz bilgi ile yeni

bir alan oluşturalım ve bunu yeni bir tabloya etkeleyim. Burada yine

yukarıdaki örneği kullanmaya devam edeceğiz. Amacımız, Aile

tablosundaki her kayıt için Ad alanının içeriği ile Soyadi alanının

içeğini birleştirmek ve tek sütunda toplamak. Sonra bir üçüncü sütun

olarak Adres 1, Adres 2 ve Şehir alanlarını birleştirip Adres adı

altında yeni bir alan oluşturacağız. Bu sorgunun oluşturacağı tabloyu

da yeni bir tablo olarak veritabanımıza ekleyeceğiz. (Daha sonra bu

tablo çok işimize yarayacak!)

Adres Defteri veritabanını yaptınızsa ve açık değilse, açın. Sorgular

nesnseini seçin ve "Tasarım görünümünde sorgu oluştur" kısayolunu

tıklayın. Access 2000 sorguda yararlanmak istediğiniz tabloları

seçebilmeniz için bir kutu açacaktır; buradan Aile tablosunu seçin, ve

Ekle düğmesini tıklayın. Tablo seçme kutusunu kapatabilirsiniz; çünkü

istediğimiz bütün alanlar bu tabloda mevcut. İkinci bölümdeki alıştırma

sırasında Adres Defteri veritabanını oluşturmadıysanız, herhangi bir

veritabanını açabilir, herhangi bir tabloyu seçebilirsiniz. Gerçi

buradaki alıştırma sonunda elde edeceğiniz tablo anlamlı sonuçlar

içermeyebilir, ama en azından deyim oluşturma konusundaki alıştırmaya

katılmış olursunuz. Access 2000, sadece bir tablosu kullanılmaya hazır,

fakat alanlarının tümü boş bir sorgu tasarım panceresi açacaktır.

Şimdi, tasarım penceresinin alttaki kılavuz bölümünde, Alan satırının

birinci sütununun içini sağ tıklayın, ve açılan menüden "Oluştur..."

maddesini seçin. Access 2000, daha önce gördüğümüz "Deyim Oluşturucusu"

aracını açacaktır. Bir kere daha tekrar edelim: Aile tablosunun "Adı"

alanındaki değer ile "Soyadı" alanındaki değeri aynı alanda

birleştirmek istiyoruz. En soldaki kategorilerden Tablolar'ı iki kere

tıklayın; altında veritabanınızdaki bütün tabloların listesini

göreceksiniz. Aile (veya hangi tabloyu örönek olarak kullanacaksınız o

tablonun adını) bir kere tıklayın. Ortadaki pencerede tablonun içerdiği

bütün alanların listesi görüntülenince, "Adi" alanını (veya hangi alanı

kullanacaksanız o alanın adını) bir kere tıklayın. Şimdi en sağda, her

kayıt için bu alandaki değeri simgeleyen "" kelimesi belirecektir.

Deyim oluşturucusunun üstteki deyim penceresi ile kategori

pencerelerinin yer aldığı bölüm arasındaki araç simgelerinden

"Yapıştır" simgesini tıklayın.

Deyim satırında "[Aile]![Adi]" ifadesi belirdi. Peki, yine araç

simgelerinden beşincisi olan "&" (ekle) işaretini tıklayın; pencçerede

beliren "&" işaretinin sağını tıklayıp, klavyede tırnak işareti tuşuna,

aralık tuşuna ve tekrar tırnak işareti tuşuna basın. Araç çubuğundan

"&" simgesini tekrar tıklayın. Deyim oluşturucunun alt bölümünde

ortadaki pencerede "Soyadı" alanını ve araç çubuğunda Ekle simgesini

tıklayın. Bunları sarısaylı yaptıysanız, deyim satırında şu ifade

belirecektir:

[Aile]![Adi] & " " & [Aile]![Soyadi]

Burada işin püf noktası Access 2000'e yazdırdığınız iki alan referansı

ve & işaretinin ortasına klavyeden yazdığınız tırnak-aralık-tırnak

bölümünü doğru yazmaktır. Bununla Access 2000'e, "Aile tablosundan

"Adi" alanının değerini al, buna önce bir aralık sonra da Alie

tablosunda "Soyadi" alanının değerini ekle!" demiş oluyoruz. Deyim

oluşturucu ise şu anda işimiz bitti; Tamam'ı taklayabiliriz. Geri

döndüğümüz sorgu tasarım penceresinde Alan satırında şu ifadeyi

göreceksiniz:

Deyim1: [Aile]![Adi] & " " & [Aile]![Soyadi]

Peki, şimdi ikinci sütundaki Alan kutusunu sağ tıklayın, ve aynı işlemi

bu kez kutunun içinde şu ifade belirecek şekilde yapın:

Deyim2: [Aile]![Adres1] & " " & [Aile]![Adres2] & " " & [Aile]![Sehir]

Başka bir veritabanı ve başka tablo kullanıyorsanız, "Adres1" ve diğer

alanlar yerine başka alanları seçebilirsiniz. Burada önemli olan üç

alanı aralarına birer aralık koyarak birbirine eklemenizdir.

Bu işlemi bitirdikten sonra, sıra sorguyu tablo yapar hale getirmektir.

Bunun için Sorgu menüsünden Tablo Yapma Sorgusu maddesini tıklayın ve

açılacak kutuda Tablo adı hanesine sorgunun oluşturucağı tabloya

verilecek adı yazın. Bu adın veritabanında mevcut bir tablo adı

olmamasına dikkat edin. Tablonun o anda açık veritabanı içinde

oluşturulmasını istiyorsanız "Geçerli veritabanı" (Current'in karşılığı

"geçerli" olmasa da!) maddesinin işaretli kalmalıdır; yeni tablonun

başka bir veritabanı içinde oluşturulmasını da sağlayabilirsiniz. Bunun

için "Farklı veritabanı" maddesini işaretleyin ve "Dosya adı" hanesine

bu veritabanının adını yazın. Tamam'ı taklayın. Şimdi ne zaman bu

sorguyu çalıştırırsanız, veritabanına verdiğiniz isimde bir dosya

eklenecek veya mevcut dosya (sizin onayınızla) güncelleştirilecektir.

Şimdi bunu yapalım. Araç çubuğundan Çalıştır simgesini tıklayın. Ve

Veritabanı penceresinde Tablolar nesnesini seçin; açılacak kutuda da

yeni tablonuzun adını iki kere tıklayın.

İşte bir tablonun farklı alanlarını birleştirerek elde ettiğiniz yeni

tablonuz. Burada alan adı olarak sorguda ortaya çıkan uzun ifade yerine

sadece "Deyim1" ve "Deyim2" kelimelirinin seçildiğine dikkat edin. Bu

isimler hoşunuza gitmiyorsa, yeni tabloyu tasarım görünümünde açabilir

ve alan adlarını değiştirebilirsiniz. Access 2000'in Deyim

Oluşturucucusu, sizin için burada yaptığınızdan çok daha ileri düzeyde,

seçme, aritmetik, istatistik ve benzeri işlevlere dayanan hesaplamalar

yapabilen SQL deyimleri yazmanız için yardımcı olacaktır. Buradaki

örnekte de yaptığınız gerçekte bir SQL komut ifadesi yazmaktı. Sorgunuz

tasarım halinde iken Görünüm menüsünden SQL Göster maddesini

seçerseniz, sorgunun SQL komut ifadesi biçiminde nasıl yazıldığını

görebilirsiniz:
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
  #24 (permalink)  
Alt 06-15-2007, 01:23
Kovuldu.!!
 
Üyelik tarihi: Jun 2007
Mesajlar: 237
Tecrübe Puanı: 0
X_MaSTeR is on a distinguished road
X_MaSTeR - MSN üzeri Mesaj gönder
Standart

SELECT [Aile]![Adi] & " " & [Aile]![Soyadi] AS Deyim1, [Aile]![Adres1]

& " " & [Aile]![Adres2] & " " & [Aile]![Sehir] AS Deyim2 INTO [Adres

Listesi] FROM Aile;

Sorgu konusunu tamamlarken bir bir çok sorgu türünü ele almadığımızı

hatırlatmak erinde olur. Bu sorguları tanımak ve burada verdiğimiz iki

örnekle aralarındaki farkı görebilmek için izlenebilecek yollardan biri

sorgu sihirbazlarını kullanarak, Access 2000'e her birinden bir kaç

örnek yaptırtmak olabilir. Sorgularda kullanabileceği işlevler ve diğer

hesaplatma işleri için de Access 2000 yardım dosyalarındaki çok sayıda

örneğe bakabilirsiniz.

İleri Sorgular



Access 2000 ile gerçek bir sorgu oluşturduğuma göre, şimdi bir adım

ileri giderek, sorgu tasarımında oluşturacağımız bir "deyim"

aracılığıyla tablolarımızdaki alanlardan elde edeceğimiz bilgi ile yeni

bir alan oluşturalım ve bunu yeni bir tabloya etkeleyim. Burada yine

yukarıdaki örneği kullanmaya devam edeceğiz. Amacımız, Aile

tablosundaki her kayıt için Ad alanının içeriği ile Soyadi alanının

içeğini birleştirmek ve tek sütunda toplamak. Sonra bir üçüncü sütun

olarak Adres 1, Adres 2 ve Şehir alanlarını birleştirip Adres adı

altında yeni bir alan oluşturacağız. Bu sorgunun oluşturacağı tabloyu

da yeni bir tablo olarak veritabanımıza ekleyeceğiz. (Daha sonra bu

tablo çok işimize yarayacak!)

Adres Defteri veritabanını yaptınızsa ve açık değilse, açın. Sorgular

nesnseini seçin ve "Tasarım görünümünde sorgu oluştur" kısayolunu

tıklayın. Access 2000 sorguda yararlanmak istediğiniz tabloları

seçebilmeniz için bir kutu açacaktır; buradan Aile tablosunu seçin, ve

Ekle düğmesini tıklayın. Tablo seçme kutusunu kapatabilirsiniz; çünkü

istediğimiz bütün alanlar bu tabloda mevcut. İkinci bölümdeki alıştırma

sırasında Adres Defteri veritabanını oluşturmadıysanız, herhangi bir

veritabanını açabilir, herhangi bir tabloyu seçebilirsiniz. Gerçi

buradaki alıştırma sonunda elde edeceğiniz tablo anlamlı sonuçlar

içermeyebilir, ama en azından deyim oluşturma konusundaki alıştırmaya

katılmış olursunuz. Access 2000, sadece bir tablosu kullanılmaya hazır,

fakat alanlarının tümü boş bir sorgu tasarım panceresi açacaktır.

Şimdi, tasarım penceresinin alttaki kılavuz bölümünde, Alan satırının

birinci sütununun içini sağ tıklayın, ve açılan menüden "Oluştur..."

maddesini seçin. Access 2000, daha önce gördüğümüz "Deyim Oluşturucusu"

aracını açacaktır. Bir kere daha tekrar edelim: Aile tablosunun "Adı"

alanındaki değer ile "Soyadı" alanındaki değeri aynı alanda

birleştirmek istiyoruz. En soldaki kategorilerden Tablolar'ı iki kere

tıklayın; altında veritabanınızdaki bütün tabloların listesini

göreceksiniz. Aile (veya hangi tabloyu örönek olarak kullanacaksınız o

tablonun adını) bir kere tıklayın. Ortadaki pencerede tablonun içerdiği

bütün alanların listesi görüntülenince, "Adi" alanını (veya hangi alanı

kullanacaksanız o alanın adını) bir kere tıklayın. Şimdi en sağda, her

kayıt için bu alandaki değeri simgeleyen "" kelimesi belirecektir.

Deyim oluşturucusunun üstteki deyim penceresi ile kategori

pencerelerinin yer aldığı bölüm arasındaki araç simgelerinden

"Yapıştır" simgesini tıklayın.

Deyim satırında "[Aile]![Adi]" ifadesi belirdi. Peki, yine araç

simgelerinden beşincisi olan "&" (ekle) işaretini tıklayın; pencçerede

beliren "&" işaretinin sağını tıklayıp, klavyede tırnak işareti tuşuna,

aralık tuşuna ve tekrar tırnak işareti tuşuna basın. Araç çubuğundan

"&" simgesini tekrar tıklayın. Deyim oluşturucunun alt bölümünde

ortadaki pencerede "Soyadı" alanını ve araç çubuğunda Ekle simgesini

tıklayın. Bunları sarısaylı yaptıysanız, deyim satırında şu ifade

belirecektir:

[Aile]![Adi] & " " & [Aile]![Soyadi]

Burada işin püf noktası Access 2000'e yazdırdığınız iki alan referansı

ve & işaretinin ortasına klavyeden yazdığınız tırnak-aralık-tırnak

bölümünü doğru yazmaktır. Bununla Access 2000'e, "Aile tablosundan

"Adi" alanının değerini al, buna önce bir aralık sonra da Alie

tablosunda "Soyadi" alanının değerini ekle!" demiş oluyoruz. Deyim

oluşturucu ise şu anda işimiz bitti; Tamam'ı taklayabiliriz. Geri

döndüğümüz sorgu tasarım penceresinde Alan satırında şu ifadeyi

göreceksiniz:

Deyim1: [Aile]![Adi] & " " & [Aile]![Soyadi]

Peki, şimdi ikinci sütundaki Alan kutusunu sağ tıklayın, ve aynı işlemi

bu kez kutunun içinde şu ifade belirecek şekilde yapın:

Deyim2: [Aile]![Adres1] & " " & [Aile]![Adres2] & " " & [Aile]![Sehir]

Başka bir veritabanı ve başka tablo kullanıyorsanız, "Adres1" ve diğer

alanlar yerine başka alanları seçebilirsiniz. Burada önemli olan üç

alanı aralarına birer aralık koyarak birbirine eklemenizdir.

Bu işlemi bitirdikten sonra, sıra sorguyu tablo yapar hale getirmektir.

Bunun için Sorgu menüsünden Tablo Yapma Sorgusu maddesini tıklayın ve

açılacak kutuda Tablo adı hanesine sorgunun oluşturucağı tabloya

verilecek adı yazın. Bu adın veritabanında mevcut bir tablo adı

olmamasına dikkat edin. Tablonun o anda açık veritabanı içinde

oluşturulmasını istiyorsanız "Geçerli veritabanı" (Current'in karşılığı

"geçerli" olmasa da!) maddesinin işaretli kalmalıdır; yeni tablonun

başka bir veritabanı içinde oluşturulmasını da sağlayabilirsiniz. Bunun

için "Farklı veritabanı" maddesini işaretleyin ve "Dosya adı" hanesine

bu veritabanının adını yazın. Tamam'ı taklayın. Şimdi ne zaman bu

sorguyu çalıştırırsanız, veritabanına verdiğiniz isimde bir dosya

eklenecek veya mevcut dosya (sizin onayınızla) güncelleştirilecektir.

Şimdi bunu yapalım. Araç çubuğundan Çalıştır simgesini tıklayın. Ve

Veritabanı penceresinde Tablolar nesnesini seçin; açılacak kutuda da

yeni tablonuzun adını iki kere tıklayın.

İşte bir tablonun farklı alanlarını birleştirerek elde ettiğiniz yeni

tablonuz. Burada alan adı olarak sorguda ortaya çıkan uzun ifade yerine

sadece "Deyim1" ve "Deyim2" kelimelirinin seçildiğine dikkat edin. Bu

isimler hoşunuza gitmiyorsa, yeni tabloyu tasarım görünümünde açabilir

ve alan adlarını değiştirebilirsiniz. Access 2000'in Deyim

Oluşturucucusu, sizin için burada yaptığınızdan çok daha ileri düzeyde,

seçme, aritmetik, istatistik ve benzeri işlevlere dayanan hesaplamalar

yapabilen SQL deyimleri yazmanız için yardımcı olacaktır. Buradaki

örnekte de yaptığınız gerçekte bir SQL komut ifadesi yazmaktı. Sorgunuz

tasarım halinde iken Görünüm menüsünden SQL Göster maddesini

seçerseniz, sorgunun SQL komut ifadesi biçiminde nasıl yazıldığını

görebilirsiniz:

SELECT [Aile]![Adi] & " " & [Aile]![Soyadi] AS Deyim1, [Aile]![Adres1]

& " " & [Aile]![Adres2] & " " & [Aile]![Sehir] AS Deyim2 INTO [Adres

Listesi] FROM Aile;

Sorgu konusunu tamamlarken bir bir çok sorgu türünü ele almadığımızı

hatırlatmak erinde olur. Bu sorguları tanımak ve burada verdiğimiz iki

örnekle aralarındaki farkı görebilmek için izlenebilecek yollardan biri

sorgu sihirbazlarını kullanarak, Access 2000'e her birinden bir kaç

örnek yaptırtmak olabilir. Sorgularda kullanabileceği işlevler ve diğer

hesaplatma işleri için de Access 2000 yardım dosyalarındaki çok sayıda

örneğe bakabilirsiniz.

Araştır düğmesini tıkladığınızda, büyük bir ihtimalle

tam aradığınız konuya uygun bir başlığın yer aldığı bir kaç yardım

konusu liste halinde karşınıza gelecektir. Ofis Yardımcısı'nın diyalog

kutusundaki Seçenekler düğmesini tıklarsanız, Yardımcı için farklı

simgeler seçebilirsiniz. Ofis Yardımcısının sağladığı hızlı yardım

yeterli olmadığı anlarda, arama ve dizinden geçme gibi diğer bazı

imkanları olan yardım kutusunu açabilirsiniz. Bunun için Yardım

menüsünden Microsoft Access Yardım maddesini seçmeniz gerekir.


Yardım gereken konunun anahtar kelimelerinin ne olabileceği hakkında

şüphede iseniz, bu kutuda İçindekiler sekmesini tıklayarak bütün yardım

konularını ana başlıklar halinde inceleyebilirsiniz. Bu kutuda ikinci

sekme olan, Cevap Sihirbazı ise Ofis Yardımcısı gibi, düzgün bir Türkçe

soruyu anlayabilir! (Kurulu Windows sisteminizin varsayılan dili Türkçe

değilse, Ofis Asistanı, soru yazmanıza imkan veren kutuyu

görüntülemeyecektir.) Dizin ise kelime aratmak için kullanılır. Bunu

iki ayrı şekilde yapabilirsiniz. Önce arama yapılmasını istediğiniz

kelime veya kelimeleri arama kutusuna yazın. Access 2000, kendi

dizininde buraya yazdığınız kelimelerle ilgili gördüklerini iki

numaralı kutuya yazacaktır. İsterseniz bu kutudaki bir kelimeyi de

işaretleyebilirsiniz. Sonra Ara düğmesini tıklayın. İçinde yazdığınız

veya seçtiğiniz kelimelerin geçtiği yardım metinlerinin başlıkları

üçüncü kutuda sıralanacaktır. Bu kutudaki başlıklardan size uygun

görüneni iki kere tıklayın; yardım metni sağdaki çerçevede

görüntülenecektir. Yardım kutusunun kendi araç çubuğundaki yazıcı

simgesini tıklayarak, görüntülediğiniz metni yazıcıya

gönderebilirsiniz; ileri-geri simgelerini tıklayarak önceki ve sonraki

yardım metinleri arasında gidip-gelebilirsiniz. Şimdi Access 2000'in

yüzünü tanımış oldunuz. Aşağı yukarı hangi düğmenin ne yapacağını

biliyorsunuz. Şimdi sıra Access'e bunları yaptırtmaya geldi.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
  #25 (permalink)  
Alt 06-15-2007, 01:23
Kovuldu.!!
 
Üyelik tarihi: Jun 2007
Mesajlar: 237
Tecrübe Puanı: 0
X_MaSTeR is on a distinguished road
X_MaSTeR - MSN üzeri Mesaj gönder
Standart

Access ile Veritabanı Tasarımı




Access 2000'i tanıdık diye hemen veri tabloları oluşturmak ve onlarla

sihirbazlık yapmak için henüz erken. Önce veritabanı planlama

konusundan söz etmemiz gerekiyor. Dikkatlice planlanmamış bir

veritabanı kullanıcıya yarardan çok zarar getirir. Veri planlama, daha

sonra verinin nerede ve nasıl kullanılacağına dayanır. İmkansız

olmamakla birlikte çok az veritabanı ilk amacının dışında

kullanılabilecek hale getirilebilir. İyi bir planlama ise önce

veritabanı terimlerine aşina olmayı gerektirir. Şimdi kısaca bu

terimleri ele alalım.
Veri ve Alan



Access 2000 ile kaydedeceğiniz ve kullanacağınız bilgilere veri denir.

Access açısından veriler, ait oldukları alanın türünde sayılır. Bir

alan sayı içeriyorsa, "123456789" sayıdır. Bir alan metin içeriyorsa

"123456789" metindir. Access 2000'de verileriniz şu türlerden birine

girmek zorundadır:
Metin:
Rakam, harf veya işaretlerden oluşan ve 255 karakter genişliğinde bir

alandır. Metin olarak tayin edilmiş bir alana yazılan rakamlar, sayı

işlemi görmez; yani aritmetik işleme konu olamaz. Metin alanları,

belirlediğiniz (nasıl belirleyeceğimize sonra geleceğiz) genişliğin

üstünde karakter tutamazlar. Söz gelimi bir metin alanını 8 karakter

boyutunda oluşturduysanız, bunun içine "Mustafa Durcan" yazamazsınız.

İyi bir veritabanı tasarımı, daima gerektiğinden biraz fazla geniş

boyut tayinini gerektirir.
Not:
Metin alanı olmakla birlikte, 64 bin karakter alabilir.
Sayı:
Her türlü aritmetik işleme konu olabilecek sayıları tutar.



Tarih/Saat:
Belirlemenize göre, tarih veya saat veya her ikisini birden tutabilen

özel bir alandır.
Para Birimi:
Türk lirası, Dolar, Alman Markı, Japon Yeni ve dünyada bulunabilecek

hemen hemen bütün para birimlerine tayinh edilebilecek özel bir

alandır. Para birimi verilerinizi gireceğiniz alanın Currency olması,

Access 2000'in bu verilerle para biriminin gerektirdiği biçimde hesap

yapmasını sağlar.
Otomatik Sayı:
Access 2000 tarafından artan şekilde otomatik olarak doldurulan bir

alandır. Bir veritabanında her bir kaydın (satırın) diğerlerinden

mutlaka ayırıcı bir niteliği olması gerekir. Herşeyiyle aynı iki kayıt,

otomatik sayı alanının farklılığı sayesinde birbirinden ayrılabilir.
Evet/Hayır:
İçindeki değer Evet veya Hayır ya da Doğru veya Yanlış olabilen,

mantıksal işlemlerde kullanılan bir alandır.
OLE Nesnesi:
Access 2000'in veritabanında bir başka program tarafından oluşturulmuş

nesnelere yervermenizi sağlayan alan türüdür.
Köprü:
Internet sitelerinde bulunan sayfaların adresi (URL), Access 2000

tarafından bağlantı sağlanacak biçimde tutulabilir.
Arama Sihirbazı:
Bir alana doğrudan vergi girmek yerine, Access'in Arama Sihirbazı

yardımıyla bu veriyi bir tablodan veya sorgu sonucundan seçmesini

sağlayabilirsiniz.
Kayıt

Veritabanındaki bir birim bilgi kümesine kayıt denir. Örneğin okuldaki

derslerinizde sınıvlarda, ödevlerde aldığınız notları tutan bir

veritabanı tasarlıyorsanız, her bir ders bir kayıt olabilir. Buna

karşılık bir öğretimenin sınıfındaki öğrenciler için tuttuğu

veritabanında, her bir öğrenci bir kayıt olabilir. Access ile kendinize

bir adres defteri yapıyorsanız, her kişi veya firma bir kayıttır. Veri

alanlarınızı belirlerken, bazı alanları "boş olabilir" şeklinde

tanımlamışsanız, telefon defterinizdeki her kaydın her alanı dolu

olmayabilir; örneğin bazı kişilerin faks numarası veya elektronik posta

adresi olmayabilir. Buna karşılık veri alanlarını belirlerken bazı

alanlara boş olma yasağı getirmişseniz, tablolarınızı doldururken

Access 2000 bu alana mutlaka alanın niteliğine uygun bir değer

girmenizi şart koşacaktır.
Tablo

Tablo, (boş veya dolu) aynı alanlara sahip kayıtlar kümesidir.

Notlarınızı tuttuğunuz dosyada 1999-2000 ders yılı notlarınız bir tablo

oluşturabilir. Bir öğretmen için Lise 3 Türk Edebiyatı sınıfındaki

öğrenciler bir tabloda toplanabilir. Fakat öğretmen isterse kız ve

erkek öğrencileri aynı tablolara da alabilir. Daha sonra değineceğiz,

bir veritabanında aynı kişiye, aynı sınıfa, yani aynı birime ait

kayıtların tümü tek tabloda bulunmayabilir. Bu sebeple, tablo dendiği

zaman, sadece birbirine benzeyen verileri olan kayıt kümesi aklımıza

gelmelidir. Burada birbirine benzeyen tanımına dikkat edin: Diyelim ki

elimizde üç kişilik bir bilgi kümesi var. Bu üç kişiye ait bilgileri,

adı, soyadı ve cinsiyeti diye üç alanda toplamaya karar verdik. Bu üç

kişinin de bu üç haneye yazılacak bilgisi benzer bilgilerdir.

Bilgilerin içerikli çok farklı olabilir; birinin adı Mustafa, diğerinin

Osman, üçüncüsünün ise Vildan olabilir. İlk ikisi için tablomuyaz

"erkek," üçüncüsü için "kadın" yazmamız gerekebilir. Fakat bu üç kişi

bir arada, bir tablo oluşturabilir.
Veritabanı

Çeşitli tablolardan oluşan ve bir Access 2000 dosyayı halinde toplanan

bilgi kümesine veritabanı deriz. Bir veritabanının içinde birden fazla

tablo bulunabilir. Bu tablolar birbiri ilişkilendirilmiş olabilir;

ilişkilendirilmemiş olabilir. Bir veritabanında tablolar birbiri ile

ilişkilendirilmemiş ise buna düz veritabanı, tablolar ilişkilendirilmiş

ise (doğru bildiniz!) ilişkilendirilmiş veritabanı denir. Eğer

veritabanı tasarımının bir tek püf noktası varsa, o da

ilişkilendirilmiş tablo meselesini kavramaktır.

Düz Veritabanı:
Bir tablonun bütün alanlarına dair bütün bilgiler kendi içinde ise bu

tabloya düz tablo, bu dosyaya düz dosya ve bu veritabanına da düz

veritabanı denir. Diyelim ki elimizde, "Adı," "Adresi" ve "Telefon

numarası" alanlarını içeren bir tablo var. Ve diyelim ki Mustafa'nın 1,

Osman'ın 2, Vildan'ın da 3 telefonu var. Bu durumda Mustafa listemize

bir kere, Osman iki kere, Vildan ise üç kere yazılacak demektir. Düz

tablolarda tekrarlar olur.
İlişkilendirilmiş Veritabanı:
Düz tablolardaki tekrarı önlemek ve böylece veritabanının daha az yer

tutmasını dolayısıyla sorguların daha hızlı icra edilmesini sağlamak

amacıyla, tabloları ilişkilendiririz. Yukarıdaki örneğe dönersek,

Osman'ın adını ve adresini iki, Vildan'ın adını ve adresini üç kere

göstermek yerine, bütün kişileri bir tabloda adları ve adresleri ile

toplar, bir diğer tabloya ise telefon numaralarını yazan ve her bir

numarayı kişiler tablosunda bir kayıtla ilişkilendirirsek, her kisini

de veritabanımız dosya olarak çok daha az yer tutar.

Bunu "Anahtar alan" veya "Birincil anahtar" (Primary key) adını

verdiğimiz teknikle sağlarız. Her tabloda her bir kaydı diğerlerinden

benzersiz hale getiren, yani diğer hiç bir satırda aynısı bulunmayan

bir alan olmalıdır. Bu nitelikteki bir alanı Birincil Anahtar olarak

tayin edebiliriz. İlişkilendirilmiş bir veritabanında, her bir kayıt,

bir alanından diğer bir tabloya bağlanır. Bu bağlamanın kayıtların

benzersiz alanlarından yapılması yanlış bağları önleyecektir. Yine

yukarıdaki örneğe dönelim. Mustafa'ya 1, Osman'a 2 ve Vildan'a 3

numaralı kişi diyelim; Elimizdeki bütün telefon numaralarını altalta

yazar (telefon numaralarını kayıt yani satır olarak düşünün) ve

karşılarına ait oldukları kişinin numarasını yazarsak, her bir

telefonun kime ait olduğunu kolayca buluruz. "Kolayca" tabiî sözün

gelişi; fakat bu durumda veri tabanı dosyamız çok daha az yer tutar.

Basit bir adres defteri yaparken, herkese üç telefon, bir faks ve bir

de cep telefonu hanesi açmak ve bazı kişiler için bazı sütunları

(alanları) boş bırakmak daha kolay bir çözüm olabilir. Bununla birlikte

daha sonra uygulama programlarına veya Web sayfalarına temel olacak

veritabanları geliştirirken, ilişkilendirilmiş tablolar kullanmak daha

doğru olur. İlişkilendirmenin ilkelerinden, ilerde tablolarlarımızda

ilişki kurarken söz edeceğiz.
Tablo Tasarımı

İyi bir veritabanı tasarımı, iyi düşünülmüş tablo tasarımı ile başlar.

Bu ilke uygulamada şu anlama gelir: Mouse işaretçisini Access simgesi

üzerine doğru götürmeden önce, elinize bolca kağıt, bir de kalem alın

ve başlayın tablo tasarımına. (Kağıdınız kareli, kaleminiz de

kurşunkalem olursa ve elinizin altında bir de silgi bulunursa, tablo

tasarımınızın başarılı olacağını şimdiden garanti ederim!) Önce kağıda

bu veritabanı projesinin sonunda ortaya çıkmasını istediğiniz liste,

rapor ve diğer ne türlü belge varsa, hepsini başlıklar halinde yazın.

Bu kağıdı önünüze koyun ve ayrı sayfalara buradaki her bir maddenin

kağıda döküldüğünde nasıl görünmesini istiyorsanız o şekilde görünümünü

çizin. İstediğiniz başlıkları, altbaşlıkları, sütunları ve satırları

belirtin. Sonra bu sayfalarda gördüğünüz şekillere bakarak, alanları

(sütun başlıklarını) listeleyin. Örneğin, kendinize bir telefon

defteri-temas çizelgesi hazırlıyorsanız, alan tanımlarınız şöyle

olabilir:

1. Sıra no = otomatik sayı
2. Adı = metin, 20 karakter boyutunda, boş olamaz
3. Soyadı = metin, 20 karakter boyutunda, boş olamaz
4. Adres Satır 1 = metin, 30 karakter boyutunda, boş olabilir
5. Adres Satır 2 = metin, 30 karakter boyutunda, boş olabilir
6. Şehir = metin, 20 karakter boyutunda, boş olabilir
7. Posta kodu = metin, 5 karakter boyutunda, boş olabilir
8. Ülke = metin, 20 karakter boyutunda, boş olabilir
9. Doğum tarihi = tarih (otomatik olarak boyutlanır), boş olabilir
10. Doğum gününde kart yollayacak mıyım= evet/hayır, boş olabilir
11. Eşinin Adı = metin 20 karakter boyutunda, boş olabilir
12. Çocuk 1 Adı = metin 20 karakter boyutunda, boş olabilir
13. Çocuk 2 Adı = metin 20 karakter boyutunda, boş olabilir
14. Çocuk 3 Adı = metin 20 karakter boyutunda, boş olabilir
15. Ev telefon no = metin, xxxx-xxx-xxxx biçiminde, boş olabilir
16. İş telefon no = metin, xxxx-xxx-xxxx biçiminde, boş olabilir
17. Cep telefon no = metin, xxxx-xxx-xxxx biçiminde, boş olabilir
18. Faks no = metin, xxxx-xxx-xxxx biçiminde, boş olabilir
19. En son ne zaman görüştüm = tarih, boş olabilir
20. Son güncelleme tarihi = tarih, boş olamaz

Alan listesini tamamladıktan sonra bu alanlar, bir tabloda mı

toplanmalı, birden fazla tabloya mı bölünmeli sorusuna cevap verin.

Yukarıdaki örnekte iki noktadaki aksaklığı görmüş olmalısınız. Birinci

aksaklık çocuklarla, ikinci aksaklık telefon numaralarıyla ilgili. Önce

birinci sorunu ele alalım. Beş çocuklu bir dostunuzun beşinci çocuğu bu

listeye yazılamaz. O halde buradaki 16 alan en azından iki tabloya

bölünmeli; çocuklara ilişkin olan alanlar dışındaki bütün alanlar

"Aileler" tablosunda toplanmalı, bütün çocuklar "Çocuklar" adlı tabloda

yer almalıdır. Çocuklar tablosunun alanları ise şöyle olabilir:

1. Sıra no = otomatik sayı
2. Çocuğun adı = metin, 20 karakter boyutunda, boş olamaz
3. Çocuğun ailesi kimliği = metin, 20 karakter, boş olamaz
Şimdi burada başka bir sorun var: çocuğun aile kimliği, babasının veya

annesinin soyadı olacaksa ve aynı soyadı taşıyan iki dostumuz varsa,

çocuğun kime ait olduğunu bilemeyiz. Aslında bu sorun, ortaya başka bir

sorun daha çıkartıyor: diyelim ki aynı adda iki dostumuz var; ikisinin

de eş ve çocuk durumu ile adreslerini ve telefon numaralarına ilişkin

elimizdeki bilgilerin aynı olduğunu (mesela bu bilgiler elimizde yok ve

dolayısılya bu sütunlar boş!) varsayalım. Bu iki kişiyi listeye

"benzersiz kayıt" olarak nasıl kaydedebiliriz? Otomatik sıra numarasını

birincil anahtar yaparak! Her aileye ait kaydın benzersiz olmasını

sağlayan otomatik sıra numarasını aile tablosunda birincil anahtar

yaparsak, daha sonra çocuk tabllosuyla ilişki sağlayan anahtar olarak

kullanabiliriz. Bunu görsel olarak ifade edelim:

Şimdilik bu tabloların oluşturulacağı üzerinde durmayalım. Burada

sadece kavramsal olarak çocuklarla aileleri arasında bağ kurmaya

çalışıyoruz. Aileler tablosunda "Aile Sıra No" adlı bir sütun açar ve

bu sütunu Access'e Otomatik Sayı alanı olarak otomatik şekilde

doldurtabiliriz. Sonra, çocukları kaydettiğimiz tabloda, her çocuğun

ailesini, aile tablosundaki Aile Sıra No bilgisini tekrar ederek

belirtebiliriz. (Nasıl'ın üzerinde durmuyoruz!) Diyelim ki Masum Sayan

adlı iki arkadaşımızın ikişer çocuğu var. 5 numaralı aileye mensup

Masum Sayan ile 6 numaralı aile mensup Masum Sayan'ın çocukları da aynı

Aile Sıra No'sunu aldıkları anda, gereksiz bilgi içeren veya bilgi

kaybına yol açan bir tablo tasarımından kurtulmuş, yani Aile tablosunda

"çocuk 1," "çocuk 2,".. "çocuk x" şeklinde kimi ailede boş kalacak,

kimi ailede yetmeyecek sütunlar açmamış oluruz.

Yukarıda muhtemel alanlarımızın listesini döktüğümüzde, iki sorunla

karşılaştığımızı söylemiştik. Birinci sorun çocuklarla ilgiliydi. Onu

çözdük. Fakat aynı durum, telefon numaraları için de var. Birden fazla

ev, iş, faks veya cep telefonu olanlara ilişkin tüm telefon

numaralarını tablomuza işleyebilmek için mutlaka çocuk tablosunu

eklediğimiz gibi, veritabanımıza ideal olarak dört ayrı telefon

numaraları tablosu (ev, iş, faks ve cep telefonları tabloları) ekleyip,

bunlara da Aile Sıra No sütunu açıp, her telefon numarası ile telefonun

sahibini ilişkilendirebiliriz. Böylece tablo tasarımının kağıt

üzerindeki bölümü bitmiş oluyor. Nihayet sıra Access'i çalıştırmaya

geldi.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!
Alıntı ile Cevapla
  #26 (permalink)  
Alt 06-15-2007, 01:24
Kovuldu.!!
 
Üyelik tarihi: Jun 2007
Mesajlar: 237
Tecrübe Puanı: 0
X_MaSTeR is on a distinguished road
X_MaSTeR - MSN üzeri Mesaj gönder
Standart

Access ile Veritabanı Oluşturma




Access'i çalıştırdıktan sonra, boş bir veritabanı oluşturalım. Fakat bu

arada Access7in boş veritabanı şablolarını tanıyalım. Kullandığınız

Access'in başka bir kullanıcı tarafından ayarları değiştirilmemişse,

açıldığı anda karşınıza ne yapmak istediğinizi soran ve dosya seçmenizi

sağlayan diyalog kutusu gelecektir. Bu kutuda "Access Veritabanı

sihirbazları, sayfaları ve projeleri" maddesini işaretleyerek Tamam'ı

tıklayın.

Access'in ayarları değiştirilerek bu kutunun açılması önlenmişse,

karşınızda tamamen boş bir Access penceresi de görebilirsiniz. Bu

durumda Dosya menüsünden Yeni maddesini seçerek (veya klavyede Ctrl

tuşunu tutarak ve N tuşuna basarak), boş bir veritabanı oluşturmanızı

sağlayacak diyalog kutusunun açılmasını sağlayabilirsiniz. Yeni diyalog

kutusu açıldığında Veritabanı sekmesini tıklayın.

Access'i tasarlayan uzmanlar, çeşitli kullanım alanları bulunan on ayrı

veritabanı şablonu hazırlamış bulunuyorlar. Access ile veritabanı

projelerinde büyük bir ihtimalle bu şablonlar hemen her ihtiyacınızı

karşılayacaktır. Access'i tanımak için bu şabloların teker teker

hepsini seçip, oluşturulmasını önerdiği dosyaların oluşturulmasını

sağlayıp, sonra şablon sihirbazının her bir veritabanında ne gibi

tablolar açtığını, bu tablolara ne gibi görevler yüklediğini, ne gibi

alanlar oluşturduğunu gözlemenizde yarar var. Veritabanı yapan Access

sihirbazlarının bir diğer marifeti veri girme ve rapor alma işlerinde

kullanacağınız formları da oluşturmaktır. Bu formları inceleyerek,

ilerde kendi formlarınızı tasarlamakta kullanacağınız ipuçları

edinebilirsiniz. Ayrıca Access 2000, sadece tabloları, formları ve

raporları oluşturmakla kalmayacak, bu veritabanını, sanki kendi başına

bir program gibi, kullanmanızı sağlayacak grafik arayüzü bile inşa

edecektir. Sihirbazları kullanarak, tabloları doldurulmaya, formları

kullanılmaya ve raporları baskıya hazır veritabanlarını sık sık

oluşturacaksınız; fakat kimi zaman bu tablolarda, formlarda veya

raporlarda yeni bir alan eklemek, veya var olan bir alanı kaldırmak

isteyebilirsiniz. Bunu yapabilmek için, Access'in bu nesnelerini nasıl

oluşturabileceğimizi, nasıl düzenleyebileceğimizi veya

değiştirebileceğimizi bilmemiz gerekir. Şimdi bir örnek üzerinde bunu

birlikte yapalım.
Alan Türleri

Access Sihirbazlarıyla ilgili keşif turunu bitirdiğinizde, Yeni diyalog

kutusunda Boş Access Veritabanı maddesini işaretleyip Tamam'ı tıklayın.

Şimdi, kendi veritabanımızı kendimiz oluşturmaya başlayabiliriz.

Açılacak diyalog kutusunda Genel sekmesinin seçili olmasına dikkat

edin; ve Boş Veritabanı simgesini ve Tamam'ı tıklayın; Access 2000 'in

önerdiği "vt1.mdb" adını "Adres Defteri.mdb" olarak (veya oluşturmak

üzere yukarıda kağıt-kalemle planını yaptığınız veritabanına uygun bir

ad vererek) değiştirin; yeni veritabanınızı Veritabanı penceresinde

işlenmeye hazır bulacaksınız. Nesneler'den Tablolar'ın seçildiğini, ve

tablo oluşturmak için kullanabileceğiniz üç aracın kısayolunu

görüyorsunuz:

Bunlar, tasarım görünümünde, Sihirbaz kullanarak ve veri girerek tablo

oluşturmanızı sağlayan yöntemlerdir. Madem ki Access 2000 ile tabir

yerinde ise sıfırdan tablo oluşturmaya karar verdik; o halde "Tasarım

görünümünde tablo oluştur" maddesini tıklayarak, tablo oluşturma

penceresini açın. Bu noktada yukarıda tablo tasarımıyla ilgili bölümde

kendi veritabanımızı planladıysanız, bu planları önünüze çekin. Bu

alıştırmayı yapmadıysanız, örnek olarak ele aldığımız Adres Defteri'ni

birlikte oluşturabiliriz.

Tasarım görünümde karşınıza gelen tablo biçimindeki araç, tablonuzdaki

alanların adlarını, özellikleri ve doldurulması için gerekli işlemleri

belirteceğiniz yerdir. Aile tablosunu oluşturmak için imlecinizi Alan

Adı sütununun birinci satırının içine getirin ve "AileSıraNo" yazın.

Kendi veritabanızı oluşturuyorsanız, herhangi bir tablodan işe

başlayabilirsiniz; bu tablolardan birini seçin ve birinci sütunun adını

yazın.

Yukarıdaki örnek planda bu sütunun adının "Aile Sıra No" olmasını

kararlaştırdığımız halde, burada alan adında boşluk bırakmadığımıza

dikkat etmiş olmalısınız. Bu, daha sonra yazacağımız veri seçme

komutlarının alan adlarında boşluk istememesinden kaynaklanıyor. Sonra

klavyenizde sekme tuşuna basarak, imlecin Veri Türü sütununa gelmesini

sağlayın ve burada beliren aşağı ok simgesini tıklayarak (veya klavyede

Alt tuşunu tutarak ve aşağı ok tuşuna basarak) veri türleri listesini

açın:

Burada gördüğünüz veri türlerini tanıyorsunuz; bizim örneğimizde

birinci alanımıza Access 2000'in otomatik olarak sıra numarası

vermesini istediğimiz için burada Otomatik Sayı türünü seçiyoruz (Siz,

kendi planınıza uygun bir türü seçebilirsiniz).
Alan Özellikleri

Tablo oluşturma penceresinin üst tarafında yaptığınız seçime göre,

pencerenin Alan Özellikleri başlıklı alt bölümündeki bilgilerin

değiştiğine dikkat edin. Buradaki kontrollerin çoğu Access ile

veritabanı oluşturma beceriniz arttıkça kullanılacak niteliktedir. Alan

özellikleri, o alandaki bilgilerin boyut, renk veya konumu gibi

niteliklerini ve gizli olmek-görünür olmak gibi davranış biçimlerini

tanımlar. Daha sonra verilerimizi biçimlendirirken bu kontrollerden

yararlanacağız. Bazı alanların bazı özellikleri yoktur. Örneğin Alan

Boyutu özelliği sadece metin, sayı ve otomatik sayı alanları için

geçerlidir. Şimdi alan özelliklerind sık kullancaklarımızı ele alalım:

Metin Alanları için alan boyutu:
0 ile 255 karakter arasında olmalıdır. Diğer alanların boyut

sınırlaması yoktur. (Varsayılan boyut: 50)

Sayı alanları için alan boyutu:
Sayı olarak belirlediğiniz alanın boyutunu, Alan Özellikleri bölümünde

Alan boyutu satırının sağındaki aşağı oku tıklayarak, şu seçenekler

arasından seçebilirsiniz: Byte, ondalık, tamsayı, uzun tamsayı, tek,

çift, yineleme kimliği (Replication ID).

Biçim:
Siz nasıl girerseniz girin verinin tabloda (ve daha sonra bu tablodan

yapılacak şekilde oluşturulacak raporlarda ve formlarda) nasıl

görüntüleneceğini belirler. Ayrıca buraya yazacağınız biçim komutları,

girilebilecek verinin niteliğini de tayin eder.

Giriş maskesi:
Veritabanıza verileri girerken, önce girişi kolaylaştırmak, daha sonra

da veri işlem sırasında verilerin istediğiniz biçimde olmasıını ve

dolayısıyla işlemi kolaylaştırmak amacılya, veri girişini belirli bir

biçim kuralına bağlayabilirsiniz. Söz gelimi telefon numaralarının

daima (0555) 555-5555 gibi girilmesini sağlamak için bir metin alanına

bunu sağlayacak giriş maskesi adı verilen komut ifadesini

yazabilirsiniz. Bunun için giriş maskesi olarak (9999) 000 0000;;_

yazmanız gerekir. Fakat Access 2000, sık kullanılan, telefon numarası,

Vergi dairesi ve numarası, posta kodu, sosyal sigortalar numarası,

sigorta kod numarası, parola, ve çeşitli tarih ve saat biçimlerine

uygun giriş maskelerini hazır veriyor.

Bu hazır maskeleri bir alanınızın Alan Özellikleri bölümüne katmak

için, giriş maskesi satırının sağındaki üç nokta simgesini tıklayın;

açılacak Giriş Maskesi Sihirbazı'nda arzu ettiğiniz giriş biçimini

seçin. Bir bilginin tablolara veya formlara belirli bir maske ile

girilmesi, mutlaka o şekilde kaydedileceği anlamına gelmez. Özellikle

parantez, kesme ve benzeri işaretleri kullandığınız giriş maskelerini

veritabanı dosyaya yazılırken kaydettirmeniz gerekmez; bu dosya

boyutunda tasarruf sağlar. Daha sonra raporlarınızda veya Access

dosyalarından başka programlar için veri ihraç ederken bu işaretlerin

yeniden konulmasını sağlayabilirsiniz.
Geçerlik Kuralı, geçerlik metni:
Veri işlemin sağlıklı olabilmesi için girilen verilerin gerçekten

girilmesi gereken türde olması şarttır. Access, veri girilmesi

sırasında girilen değerin geçerliliğini sınayabilir ve veri gireni

uyarır. Veri girişinde uyulacak kuralları Geçerlik Kuralı kutusunda,

geçirli olmayan veri girişinde görüntülenecek uyarı metnini ise

geçerlik metni kutusunda belirtirsiniz. (Bu kutuların etiketini

Geçerlilik şeklinde göreceksiniz. Bu, Türkçe imlâ ilkelerine

aykırıdır.)
Gerekli:
Bu özelliğin sağında belirecek aşağı oka basarak, Evet veya Hayır'ı

seçebilirsiniz. Bir alanı Gerekli hale getirirseniz, veri tablosunu

doldururken, Access bu alanın boş bırakılmasına izin vermez. Yukarıdaki

planlama örneğinde bazı alanların niteliğini kağıda dökerken yanlarına

"Boş bırakılabilir," bazılarına ise "Boş bırakılamaz" notunu

koyduğumuzu hatırlıyor olmalısınız. Boş bırakılabilir alanlar için bu

kutuya "Hayır" (yani doldurulması gerekli değil!), boş bırakılamaz

alanlara ise "Evet" (yani doldurulması gerekli!) kaydını koymamız

gerekir.
Sıfır uzunluk İzni:
Boş bırakılmasını önlediğiniz, yani gerekli alanların boyutu sizin için

önem taşıyor olabilir. Doldurulması gerekli alanların doğru

doldurulmasını sağlamanın bir yolu, alana girilecek değerin boyunun

sıfır olmasını önlemektir. Yukarıdaki örnekte geliştirdiğimiz

veritabanının kullanılabilir olması için en azından kişilerin ad ve

soyadlarının tabloda yeralması gerekir; aksi taktirde ortada tablo

denecek bir şey bulunmaz. Soyadı olmayan kişilerin ise adları ile

yetinemeyiz. O halde bu iki alanı hem gerekli yapar, hem de sıfır

uzunluk izni vermezsek, tablomuzu doldururken isteyerek veya kazayla bu

alanları boş bırakmamız tehlikesini önlemiş oluruz.
Sıralı (Endeks):
Access ile oluşturduğumuz veritabanlarını işlerken yapacağımız işlerin

başında, tablolarımızdan belirli ölçütlere göre seçmeler (sorgular)

yaptırtmak gelecektir. Basit bir sorgunun hızla tamamlanabilmesi için

Access'in tablolardaki alanları önceden endekslemesi yerinde olur. Bir

alanın Alan Özellikleri bölümünde Sıralı kutusunun sağındaki aşağı oku

tıklarsanız, "Hayır" seçeneğinin yanı sıra iki ayrı "Evet" seçeneği

bulunduğunu göreceksiniz. "Hayır" seçeneği, bu alanın önceden

endekslenmesini önler. Bu alandaki verilerin endekslenmesini sağlayan

diğer iki seçenekten birincisi, "Evet (Yineleme Var)", Access'in

oluşturacağı endekste, bu değerden birden fazla olmasına imkan verir.

Bizim örneğimizde, kişi ad ve soyadlarından birden fazla olması

ihtimali öngörüldüğüne göre, endeksimizin tekrara izin vermesi gerekir.

Bir alan, tablodaki kayıtların benzersiz olmasını sağlayan Birincil

Anahtar alanı olarak tayin edildiyse, tekrara izin verilmemesi gerekir.

Bunun için, bu kutudaki endeksleme yaptırtan ikinci seçeneği, "Evet

(Yineleme Yok)" maddesini seçmemiz gerekir.
Unicode Sıkıştırma:
Access 2000, Ofis 2000 ailesinin diğer üyeleri gibi Unicode-uyumlu,

yani içinde 65 bin 536 adet harf, rakam ve işaret bulunan yazı tipi

(font) sistemini destekler. Unicode uyumlu olmayan programlar ise

sadece 256 karakter içeren fontları kullanabilirler. Metin, not ve

köprü (Web adres bağlantısı) türündeki verilerinizde Türkçe karakter

bulunuyorsa, alan özelliğinde Unicode Sıkıştırma'nın "Evet" olması

gerekir. Bu durumda Access, bu alandaki veriyi kaydederken her bir

karakter için gerekli alanı (2 byte) ayıracaktır. Bu tür alanlarınızda

Türkçe karakter yoksa, Access dosyasının büyüklüğü etkilenmeyecektir.

Dolayısıyla Türkçe veritabanı oluştururken bu değeri sürekli "Evet"

ayarında tutmak dosya büyüklüğü bakımından olumsuz bir etki yapmaz;

sadece Türkçe karakterlerinizi korumuş olursunuz.
Alan Tanımları:
Tablo tasarımında son nokta, tablolarımızı başkalarının da

kullanabileceğini gözönünde tutarak, tanım sütununa gerekli

açıklamaları yazmaktır. Tablolarımızı başkasıyla paylaşacak olmasak

bile, bir süre sonra alanlarımızın ne amaçla oluşturulduğunu hatırlamak

zor olabilir. Buradaki gibi "Adı," "Soyadı" adını verdiğimiz alanların

işlevini hatırlamakta sorun olmayacağı düşünülebilir. Fakat verilerin

başka tablolardan alındığı durumlarda veya değerlerle ilgili uyarıcı

notların gerektiği durumlarda, Tanım satırlarına yazacağınız bilgiler

işe yarar. Tabloyu yaptıysanız, tasarım görünümünde son şekli şöyle

olmalı:
Arama Sihirbazı
Access'te veritabanı oluşturmanın birinci adımını attık: ilk tablomuzu

yaptık; alanlarını belirledik; alanların özelliklerini tayin ettik.

Buradaki örneği uyguluyorsanız, şimdi ikinci bir tablo oluşturmanız

gerekir. Bitmiş tasarım görünümüne bakarak, yukarıdaki bilgiler

ışığında ikinci tabloyu siz oluşturabilir misiniz?

Burada dikkat edilecek tek nokta, AileSıraNo adlı alanın içeriğinin

doldurulması için gerekli ifadeyi Arama Sihirbazı'na yazdırtmaktır.

Çocuklar tablosunun taramın görümünde ikinci alanın adını yazdıktan

sonra Veri Türü sütununda seçme okunu tıklayın ve açılan listeden Arama

Sihirbazını seçin.

Arama Sihirbazı'nın birinci dayalog kutusu, bu alana girilecek

değerlerin mevcut bir tablo veya sorgu sonucundan mı alınacağını, yoksa

bu değerleri sizin doğrudan mı yazacağınızı belirler. Buradaki örnekte,

veritabanımızda Çocuklar tablosunu doldururken, bu sütunun yanında bir

seçme oku belirmesini ve bu oku tıkladığımızda Aileler tablosunda,

Ailei Sıra No alanına girilmiş bütün değerlerin gösterilmesini

istiyoruz. Başka bir deyişle bu sütuna girecek bilgileri, Aileler

tablosundan alacağız. O halde, Arama Sihirbazı'nın ilk diyalog

kutusunda "Değerler tablo veya sorgudan alınsın" maddesini

işaretleyerek, İleri düğmesini tıklamamız gerekir. Arama Sihirbazı'nın

ikinci diyalog kutusu ise bir önceki tercihinize göre ya

veritabanınızdaki bütün tablo ve sorguların listesini içerir ve siz bu

listeden veri alacağınız tablo veya sorguyu seçersiniz; ya da seçme

yapacağınız veri listesini oluşturmanız için küçük bir tablo oluşturma

aracı açılır.

Veri seçme işini bir tablo veya sorgudan yapacaksanız bu tablo veyla

sorgunun adını seçerek, İleri'yi tıklayın. Veri seçme işini kendi

vereceğiniz değerlerle yapacaksanız, veri seçme listesi diyalog

kutusunda veri seçme listesinin tek sütunlu olduğunu göreceksiniz;

seçiminizi daha çok sütunlu bir listeden yapmak istiyorsanız önce yeni

sütun sayısını yazın; sonra aşağıdaki "Süt1" atdlı örnek sütunun adını

tıklayın; arzu ettiğiniz kadar sütun belirecektir; şimdi sçilecek

değerleri bu sütunlara ve satırlara girin ve İleri'yi tıklayın.

Her iki yolda da Arama Sihirbazı'nın üçüncü diyalog kutusunda, ya

mevcut talo ve sorgulardan seçtiğiniz ya da kendi oluşturduğunuz

değerli içeren alanlar kullanılabilir alan olarak sıralanacak ve Son'u

tıkladığınızda Arama Sihirbazı, tasarım penceresinin Alan Özellikleri

bölümünde Arama sekmesindeki değerleri dolduracaktır. (İlerde arama ve

sorgu konusunda uzmanlaştığınızda bu değerleri siz de

doldurabilirsiniz. Şimdilik sadece Arama sekmesinde Satır Kaynak Türü

ve Satır kaynağı kutularına yazılan ifadeleri inceleyin ve Access'in

tablolara ve tabloların alanlarına nasıl gönderme yaptığına dikkat

edin.) Bu suretle oluşturduğumuz otomatik değer seçme imkanını

kullanmak üzere Çocuklar tablosunu açtığımızda ve yeni bir girdi için

Aile Sıra No sütununda bir satırı tıkladığımızda, kutunun sağ kenarında

bir seçme oku belirdiğini görürüz. Bu oku tıkladığımızda ise açılan

listede, bu ana kadar Aile tablosunda Aile Sıra No sütuna girdiğimiz

bütün değerleri görürüz.

Tablo tasarımını öğrendiğimize göre, şimdi tablolara veri girme, veri

arama ve tabloların Access 2000 penceresi içinde görüntülenme

yöntemlerinden söz edebiliriz. Bir veritabanı ile veri-işleme

başlamadan önce verileri girmemiz