Ara 14, 2024, 12:19 ös

Haberler:

Siteniz Guncelleniyor... 2020


Son İletiler

Sayfa 1 ... 7 8 9 10
81
Videolar / Re: Sagopa Kajmer Ahmak Islata...
Son İleti Gönderen Alican - Tem 20, 2019, 08:15 öö
82
Videolar / Re: Sagopa Kajmer Ahmak Islata...
Son İleti Gönderen Alican - Tem 20, 2019, 08:15 öö
83
Videolar / Re: Sagopa Kajmer Ahmak Islata...
Son İleti Gönderen Alican - Tem 20, 2019, 08:15 öö
84
Videolar / Sagopa Kajmer Ahmak Islatan Al...
Son İleti Gönderen Alican - Tem 20, 2019, 08:14 öö
Klasik Sago Albumu...

85
Videolar / Sagopa Kajmer Galiba Klibi
Son İleti Gönderen Alican - Tem 20, 2019, 08:14 öö
86
Videolar / Kajmer Piano Solo 8 Yil oncede...
Son İleti Gönderen Alican - Tem 20, 2019, 06:53 öö
87
Bilgisayar Dershanesi / AC-DC CONVERTER
Son İleti Gönderen Karamsar - Şub 23, 2019, 10:51 öö


1-CONCEPTS AND SPECIFICATIONS
1.1   Project Objectives
We do this project to improve our understanding of the construction processes followed during the realization of the design and we also specifically learn AC to DC converters. In addition we also improve our preparation of project.
1.2 Project Goals
 By doing this project we are now ready for the construction that is realization of other projects and we are now have a technical experience on the realization of the software design and also experience on the software design of the projects
1.3   Project Responsibilities
In this project we are responsible to give the project on time and not to cheat during the steps of the project. We are also responsible for not to waste the materials used in the labs and also protect our selves against acid,base and ultraviolet light.
      1.4 Preliminary Specifications
 Input voltage 220VAC 10%
      Output voltage 1,5...12 VDC continuously adjustable
      Output current 1A (maximum)
      Output ripple < 0.1Vpp
      Load regulation better than 1%
      Line regulation better than 1%
88
Bilgisayar Dershanesi / Re: ACCESS VERİ TABANI
Son İleti Gönderen Karamsar - Şub 23, 2019, 10:49 öö
bilgisi ve hatta bir ölçüde Programlar İçin Visual Basic (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; 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.
Access ile tabir yerinde ise bu kadar uğraşmanızın bir sonucu olması gerekir. Bu sonuca "Rapor" denir. İlk veritabanı işlem programı tasarlandığında adı "Tablo ve Rapor Uygulaması" idi; rapor ilk günden beri veri-iişlemin ayrılmaz parçası olagelmiştir. Access 2000 de bu geleneğin dışında değildir: şu ana kadar farketmiş olduğunuz güçlü veri-işlem araçlarının aynı etkinlikle bu verilerin rapor haline getirilmesinde de kullanıldığını göreceğiz. Access 2000, raporlarını tablo ve sorgulardan elde eder, ya otomatik olarak, ya da sizin talimatınızla biçimlendirir ve veritabanının bir nesnesi olarak veritabanı dosyasının içinde kaydeder. Bu raporları Ofis 2000 ailesinin diğer üyeleri olan Excel ve Word ile paylaşabilirsiniz.
Access 2000'nin veritabanı penceresinde tablolar, formlar ve sorgular gibi raporların da ayrı bir nesne grubu halinde toplandığını, "Tasarım görünümünde rapqor oluştur" ve "Sihirbazı kullanarak rapor oluştur" şeklinde iki kısayol bulunduğunu göreceksiniz. Raporlar nesne grubunu seçtiğinizde veritabanı penceresinin Yeni düğmesi, bu iki kısayola ek olarak, dört ayrı rapor sihirbazını daha kullanma imkanı sağlar. Bunların arasındaki iki otomatik rapor aracı belki de en sık kullanacağınız rapor elde etme yöntemi olabilir. Bu iki yöntemde Access 2000 sizin işaret edeceğiniz tablo veya sorgudan elde edeceği raporu kendisi biçimler. Diğer sihirbazlar ve tasarım görünümde rapor oluşturma yöntemlerinde ise raporunuza siz şekil verirsiniz.
Rapor, ana hatlarıyla tanımlarsak, bir tablo veya sorgunun alanlarının, alan adları ile birlikte kağıt üzerinde yerleştirilmesi demektir. Şimdi OtoRapor ve kendi tasarlayacağımız raporları ayrıntılı ele alalım.
Burada gördüğünüz "Otomatik Rapor: Sütunlu" ve "Otomatik Rapor: Sekmeli" sihirbazları, OtoRapor tekniğini kullanırlar. OtoRapor yoluyla her iki yöntemde de sadece bir tablonun veya sorgunun içeriğini baskıya hazır hale getirirebilirsiniz. Bununla birlikte ortaya çıkacak rapor farklı olur.
Sekmeli OtoRapor: her kaydı bir sıraya koyar; her alan sağa doğru sütunlar halinde dizilir. Alan adları, sütun başlığı olarak kullanılır ve çoğu zaman bütün adların kağıda sığması amacıyla kısaltılır. Sütun genişlikleri, bütün veriyi sığdıracak şekilde ayarlanır. Sütunlu OtoRapor: her kayıt sayfa üzerinde bir grup oluşturur; alan adları solda, alan içerikleri sağda iki sütun halinde dizilir. Bir kaydın alan sayısı ve içerikleri bir sayfaya yakın yer tutuyorsa, Access 2000 ikinci kaydı yeni bir sayfada başlatabilir.
Ne zaman hangi OtoRapor'un kullanılabileceğine ilişkin bir kural koymak zordur. Bazı veri türlerinde ve tablo yapılarında sütunlu, diğerlerinde sekmeli raporun işe yaradığını göreceksiniz. Genel bir ilke olarak, çok kayıt, çok alan ve alanlarda kısa veriler bulunan tabloların Sekmeli; az kayıt, az alan fakat alanlarda uzun bilgiler bulunan tabloların ise sütunlu biçime daha elverişli olduğunu söyleyebiliriz. Tablonuza hangi otomatik raporun uygun düştüğünü sınayarak bulabilirsiniz.
Access 2000 OtoRaporları, Windows'un varsayılan yazıcısıni ve yazıcının o andaki kağıt boyutu ayarlarını dikkate alarak biçimlendirir. Kimi raporlar açısından kağıdın dikey veya yatay olması önem taşıyabilir. OtoRaporu yeniden oluşturmak ve yazıcıya göndermeden önce Access 2000 içinden yazıcı ayarlarını değiştirmek mümkündür. Ayrıca Access 2000, raporunuzun birden fazla sayfaya bölünmesi halinde sütunların önce yatay sonra dikey, veya önce dikey sonra yatay yazdırılması gibi ince ayarlara da imkan verir. Üçüncü bölümde sorguları ele alırken, bir tablonun farklı alanlarını birleştirerek Adres Listesi adlı bir tablo oluşturmuştuk. Şimdi bu tabloyu iki yöntemle otomatik rapor haline getirelim ve farkını görelim. Bunun için veritabanı penceresinde nesnelerden Raporlar'ı ve araç çubuğundan Yeni simgesini tıklayın.
Burada, üstte "Otomatik Rapor: Sütunlu" seçeneğini seçtikten sonra veri kaynağı kutusunun seçme okunu tıklayarak, veritabanında mevcut bütün tablo ve sorguları gösteren listeden, Adres Listesi tablosunu seçin. İkinci bölümde Adres Defteri veritabanını oluşturmadıysanız veya üçüncü bölümdeki sorgu alıştırmasını yapmadıysanız, içinde iki alanlı tablo bulunan herhangi bir veritabanını kullanabilirsiniz. Tamam'ı tıkladığımızda, Access 2000, tablodaki verileri kullanarak otomatik tablomuzu baskı önizleme penceresi halinde görütüleyecektir.
Üçüncü bölümdeki sorgu alıştırmasını yaparken sorgunun oluşturduğu yeni tabloda, alan adı olarak "Deyim1" ve "Deyim2" kelimelerinin seçildiğine dikkat etmiştik. Şimdi bu adların yeni raporumuzda kullanıldığını görüyorsunuz. Bu adları raporu tasarımın görümünde açarak düzeltebilirdik. Fakat geç kalmış değiliz; OtoRapor da, bütün otomatikliğine rağmen, düzenlenebilir niteliktedir. Buna sonra döneceğiz. Raporu incelemeye devam edersek, her bir kaydın bir "rup" oluşturduğunu görüyoruz. Alan adları birinci sütunda. alan değerleri ikinci sütunda ve bütün alanlar bir grup oluşturacak şekilde altalta dizilmiş bulunuyorlar. Bu arada Araç çubuğuna da dikkat edin. Access 2000, raporu yazdırmak amacıyla hazırladığınızı düşünerek, size baskı önizleme penceresini açmış bulunuyor. Dalıyısıyla araç çubuğunda tasarım görünümüne geçmek gerekli simgenin yanında Yazıcı simgesini, raporu ekranda çeşitli büyüklüklerde ve sayfa sayısında görmenizi sağlayacak denetim simgilerini ve bu raporun sözgelimi Office 2000 ailesinin diğer üyelerinden Microsoft Word kelime işlem programı ile paylaşmayı sağlayacak Ofis Bağlantıları simgesini göreceksiniz. İlk raporunuzu kağıt üzerinde görmek için yazıcı simgesini tıklayabilirsiniz. Bir Access 2000 raporunun Word 2000'de nasıl göründüğünü ve nasıl düzenlenebildiğini Ofis Bağlantıları simgesini tıklayarak inceleyebilirsiniz. Hatta otomatik raporun otomatikliğine müdahale ederek, tasırım işini bu noktadan itibaren devralabilirsiniz. Ama buna sonra geleceğiz; şimdi bir de Sekmeli OtoRapor'u görelim. İki raporu yanyana inceleyebilmek için şimdilik Access 2000'in otomatik olarak küçülttüğü veritabanı penceresini eski önceki boyutuna getirelim, ve bu kez sekmeli OtoRapor aracını kullanalım.
Veritabanı penceresinde halâ Raporlar nesnesi seçili olmalı; Yeni simgesini tıklayın ve "Otomatik Rapor: Sekmeli" yöntemini işaretleyerek ve Adres Listesi tablosunu (veya biraz önce kullandığınız tabloyu) seçerek, Tamam'ı tıklayın. Bu kez Access 2000, alan adlarını sütunlar haline getirecek ve her bir kayıt raporda bir satır olacaktır.
Her iki raporda da Tablo adının sayfanın başlığı olarak kullanıldığına, sayfanın altında ise günün tarihi ve sayfa numarasının yer aldığını görüyorsunuz. Bu raporda da tablodaki alan adları sütun başlığı olarak kullanılıyor. Bu noktada verimize hangi rapor biçiminin daha uygun düştüğünü de kararlaştırabiliriz. Buradaki örnekte, kişilerin adları ile adreslerinin aynı satırda gösterildiği Sekmeli yöntemle yaptığımız rapor daha kullanışlı bir liste görünümü veriyor. Fakat bir kaydın bütün alanlarının böyle düzgün biçimde sekmelerle ayrılması mümkün olmayabilir. Burada sadece iki alan var ve alanların içerikleri oldukça az. Alan içerikleri uzun olsaydı sayısı arttıkça sütunlu biçim veriye daha uygun olabilir, her bir kaldı kendi grubu içinde topluca görmek daha kullanışlı olabilirdi.
OtoRapor güçlü bir araç olmakla birlikte, tablo halinde uygun göründüğü halde belge haline dönüşünce uygun olmayan sayfa veya sütun başlıkları kullanabilir. Veritabanını tasarlayan kişi olarak "Deyim1" bizim için anlam ifade edebilir; fakat raporu sunduğumuz kişi açısında burada, söz gelimi "Müşterinin Adı ve Soyadı" şeklinde bir sütun başlığı bulunması daha uygun düşebilir. OtoRaporun tasarımına nasıl müdahale edebileceğimizi ikinci raporda görelim.Baskı önizleme penceresinin araç çubuğunda, Tasarım görünümü simgesini tıklayın; Access 2000 raporun tasarım penceresini açacaktır.
Araç kutusu ve tasarım kılavuzu ile bu görünüm, form oluşturduğumuz pencereye çok benziyor! Access 2000'in tasarım araç kutusu, form ve rapor tasarımlarında aynı işlevi yapar. (Formların da yazdırılabildiğini hatırlayın!) İki tasarım görünümünün arasındaki başlıca fark, form tasarımında her formda tekrar eden "sayfa üst bilgisi" ve "sayfa alt bilgisi" bölümleri ancak siz isteyince oluşturulduğu halde, raporlarda bu iki bölüm varsayılın unsur olarak yer alır. Bizim şu anda yapmak istediğimiz, "Deyim1" şeklindeki sütun başlığını "Adı Soyadı," "Deyim2" şeklindeki sütün başlığını ise "Adresi" olarak olarak değiştirmekten ibaret. Bunun için, tasarım penceresinde Sayfa Üstbilgisi bölümünde "Deyim1" kelimesini Mouse işaretçisi ile tarayın ve yerine "Adı Soyadı" yazın. Raporun mevcut unsurlarından birinin, örneğin "Deyim1" kelimesinin bulunduğu kutuyu tıkladığınınızda kutunun çevresinde seçildiğini gösteren tutamak işaretlerinin belirdiğini ve Mouse işaretçisini bunlardan sol üst köşede diğerlerinden büyükçe olanının üstüne götürdüğünüzde işaretçinin el şekline girdiğine dikkat edin.
Bu, kutuyu tutarak istediğiniz yere taşıyabileceğinizi gösterir. Daha sonra "Deayim2" kelimesinin yerine de "Adresi" kelimesini yazın. Bu arada raporun Ayrıntı bölümünde tablodan alınan Deyim1 ve Deyim2 alanlarının yer aldığına, sayfanın altındaki günün tarihinin "Now()" deyimi ile, "Sayfa 1/1" yazısının ise "="Sayfa " & [Page] & " / " & [Pages]" deyimi ile elde edildiğine dikkat edin. "Now()", "[Page]" ve "[Pages]" deyimleri, Access 2000'in tanıdığı VBA (Visual Basic for Applications, Uygulamalar için Visual Basic) dilinden alınma kodlardır. Sütun başlıklarını değiştirme işlemini tamamladıktan sonra, araç çubuğunda baskı önizleme simgesini tıklayın; raporun basılınca alacağı biçimi yeniden göreceksiniz; fakat bu kez sütun başlıkları daha anlamlı hale gelmiş olacak.
Access 2000'in OtoRapor yeteneği ne kadar güçlü görünse de, rapor oluşturma konusunda asıl marifetinin sihirbazlar eliyle oluşturabileceğiniz etiket ve grafik raporlarında ortaya çıktığını göreceksiniz. Bu yeteneği yakından görmek için örnek olarak tebrik kartlarımızın zarfına yapıştırmak üzere adres etiketleri oluşturalım.
Etiket Satınalmadan önce
Access 2000, piyasada rahatça bulabileceğiniz adres, dosya, gönderme ve isim etiketlerinin çoğunu tanır ve verinizi bu etiketlere göre biçimlendirebilir. Access ile etiket oluşturmaya başlamadan önce bu tür malzemelerin satıldığı bir mağazadan ihtiyacınıza uygun ne tür etiketler bulunduğunu öğrenin. Etiketleri satın almadan önce bulabildiğiniz mark ve modelin Access tarafından tanınan etiketler arasında bulunup bulunmadığını kontrol etmelisiniz. Bunun için herhangi bir veritabanı dosyasını açın ve Etiket Sihirbazını çalıştırarak, imalatçı adını ve ürün numaralarını kontrol edin. Access 2000, 12 kadar imalatçının bine varan etiket modelini tanıyabilir.
Elinizde Access 2000 tarafından "tanınmayan" etiket stoku varsa ve bunları kullanmak zorunda iseniz, Etiket Sihirbazı'nın ikinci adımında Özelleştir düğmesini tıklayarak kendi etiket boyutlarınıza uygun bir şablon oluşturabilirsiniz.
Etiket sihirbazı, Raporlar penceresindeki Yeni simgesi tıklanarak ve açılacak kutuda Etiket Sihibarbazı satırı seçilerek çağrılır. Bu pencerede kendinize bir de tablo seçmeniz gerekir. Etiket sihirbazının aslında bir sorgu aracı olduğunu görebilmek için, bu kez "kolay" bir veri tablosu değil fakat etiketin üzerindeki bilgileri bir çok alandan toplayacağımız nisbeten karmaşık bir veri tablosu seçelim. Örneğin, Aile tablosu, bu amaçla kullanılabilir. Bu alıştırmayı yapmadıysanız, çok alanlı, fakat alan içeriklei kısa bir tablo seçebilirsiniz. Tabloyu seçtikten sonra İleri düğmesini tıkladığınızda, Sihirbaz etiket türü seçmenizi isteyecektir. Elinizde gerçekten yazıcınıza uygun etiket varsa ve bu etiket Access 2000 tarafından tanınıyorsa, önce İmalatçı bölümünde etiket yapımcısının adını, sonra yukarıdaki listeden etiketlerinizin ürün numarasını seçin; etiketlerinizin gerçekten yaptığınız seçime uygun boyutlarda olup olmadığını seçtiğiniz ürünün karşısındaki boyut ölçülerini etiket kutusunun üzerindeki ölçülerle karşılaştırabilirsiniz.
Üçüncü adımda etiketin görünümüyle ilgili seçim yapmaya başlıyoruz; önce etiketimizde kullanıcak yazı tipini seçmemiz gerekiyor. Beğendiğiniz bir yazı tipini, etiketinize uygun punto ölçüsünü, yazı özelliğini (kalın, italik, altçizgili), ve rengini seçin.
Dördüncü adımda işin zevkli tarafı başlıyor: etiketin içeriğini oluşturuyoruz. Seçtiğimiz tabloda mevcut alanları, alan listesinde göreceksiniz. Önce "Adı" alanını seçin ve ortadaki sağa ok simgeli düğmeyi tıklayın; sonra klavyede aralık tuşuna bir kere basın ve solda "Soyadı" alanını seçip, ortadaki oklu simgeyi tıklayın. Şimdi klavyede Enter tuşuna basın; ekrandaki etiket öröneğinde imlecin aşağı satıra indiğini göreceksiniz. Alan listesinde Adres1'i seçin ve oku tıklayın; tekrar klavyede Enter'a basın. İmleç bir aşağı satıra inince, alan listesinde Adres2'yi seçin; oklu simgeyi tıklayın; Enter'a basın. Ve imleç dördüncü satırda iken sağda Şehir alanını seçin ve oklu simgeyi tıklayın. Etiket inşası bitti!
İleri'yi tıklayarak, beşinci adıma geçebilirsiniz. Bu adımda etiketlerin nasıl sıralanacağını belirleyeceğiz. Özellikle postaya vermek üzere zarf ve paket üzerine yapıştırılacak veya bir toplantıda katılımcıların gögüslerine takacakları isim etiketlerini hazırladığınız zaman bu önem taşıyabilir.
Son'u tıkladığınızda raporunuz basılmaya hazır şekliyle karşınıza gelecektir.
Access 2000'in etkiketleri hangi sıraya göre basmasını istiyorsanız, bu alanın adını işaretleyin ve ortadaki oku tıklayın. Diyelim ki bir konferansa katılacak kişilere isim etiketleri hazırlıyorsunuz; katılımcıların kayıt sırasında isim etiketlerini önce soyadlarına, sonra da adlarına göre sıraya sokarak dağıtımı kolaylaştırmak istiyorsunuz. Önce Soyadı, sonra da Adı alanlarını ve oklu simgeyi tıkladığınızda Access 2000 etiketleri yazıcıya önce soyadı alanının içeriğine göre sıralayacak, sonra da bunları kendi içlerinde adlara göre sıraya koyacaktır. Bu surette oluşturduğunuz bir etiketi tasarım görünümünde açarak, biçimini değiştirebilir, arzu ediyorsanız bütün etiketlerde aynı konumda basılacak bir grafik resim de yerleştirebilirsiniz. Bunun için tasarım görümünü açtığınızda belirecek araç kutusundan Resim aracını seçmeniz ve etikette resmin almasını istediğiniz yeri tıklamanız yeterlidir. Resim aracı, disk veya disketlerinizde aradığınız grafik dosyasını bulmanıza yardımcı olacaktır. Access 2000'in rapor sihirbazlarından grafik sihirbazı ise bir tablodan en az iki, en fazla altı alandaki verileri alarak, raporlarınıza Excel türü istatistiksel grafikler koymanıza yardımcı olur.
Access 2000'ın OtoRapor sihirbazlarının bir eksiği, bir tablonun verisi ile rapor hazırlamalarıdır. Gerçi çok acele rapora ihtiyacınız olduğunda önce farklı tabloları bir sorgu ile birleştirip, OtoRapor sihirbazına bu sorguyu kaynak olarak kullanmasını bildirebilirsiniz, fakat öyle anlar olabilir ki çok kaynaktan çok veri kullanarak raporlar hazırlamanız gerekir. Access'in Rapor Sihirbazı bu gibi durumlarda istediğiniz kadar tablodan istediğiniz kadar alanı bir raporda birleştirmenizi sağlayacaktır.
Çok tablolu rapor hazırlamak için de veritabanı penceresinde nesnelerden Raporları ve araç çubuğundan Yeni simgesini tıklamanız gerekir. Açılacak sihirbaz, daha önceki rapor sihirbazlarına benzemekle birlikte farkı ikinci pencerede göreceksiniz. Birinci pencerede raporda kullanacağınız veri tablosunu seçmeniz gereken kutuy boş bırakarak, İleri düğmesini tıklayın.
Bu sihirbaz, daha önce benzerini ileri düzeyde tablo, form ve sorgu oluştururken gördüğümüz türden, birden fazla tablodan alan seçmenize imkan verir. Şimdi Tablolar Sorgular hanesinde, Aile tablosunu seçelim (bu tabloyu içeren Adres Defteri veritabanını yapmadıysanız, herhangi bir veritabanından herhangi bir tabloyu seçebilirsiniz). Kullanılabilir alanlar kutusunda bu tablonun alanları belirmiş olmalı. "Adı," "Soyadı" ve "Eşinin Adı" alanlarını, sağdaki Seçili Alanlar kutusuna aktarın. Sonra, Tablolar-Sorgular kutusunda Çocuklar tablosunu seçin ve bu tablonun alanlarından Adı'nı Seçili Alanlar'a aktarın. Bu sihirbaz istediğiniz kadar tablodan istediğiniz kadar alanı rapora almanıza imkan verir. Şimdi İleri düğmesini tıklayın. Bu kez Sihirbaz, raporu nasıl görüntelemek istetediğinizi soruyor.
Birden fazla tablodan alan seçtiğinizde bu alanların birbirine ile ilişkili olması gerekir. Aksi taktirde Access, hangi alanın verilerinin hangi alana göre yerleştirileceğini bilemez. Bu pencerede, her ne kadar bozuk bir Türkçe ile de olsa, Access 2000 verilerin seçtiğiniz tablolardan hangisine göre sıralanacağını sormaktadır. Bizim örneğimizde Aile tablosundan aldığımız bilgiler esas, Çocuklar tablosundan aldığımız bilgiler Aile'ye göre anlam taşıdığı için, verilerimizin Aile tablosuna göre sıralanması gerekir. Nitekim, böyle bir sıralamada, Aile tablosunun bilgilerinin üst grupta, Çocuklar tablosunun bilgilerinin alt grupta toplanacağını sağdaki örnek düzenlemede görüyoruz. İleri düğmesini tıkladığımızda, Access 2000 bu kez verileri bir alana göre gruplamak isteyip istemediğimizi soracaktır. Buradaki örnekte aileleri soyadlarına göre gruplayabiliriz. Fakat iş dünyasındaki örneklerde firmalarla ilgili bilgilerin firma adına göre gruplanması, veya bir firmanın satınalma raporunda bütün bilgilerin satınalınan malın envanter numarasına göre gruplanması mümkündür. Böylece bir bakışta hangi tür malı hangi firmalardan aldığımızı görebiliriz. Buradaki örnekte, Aile tablosundan alınan Soyadı alanına göre gruplama talep edebiliriz.
Bu durumda kayıtlarımız ailenin soyadına göre, kişinin adı, eşinin adı ve çocuklarının adları şeklinde öbeklere bölünecek demektir. İleri düğmesini tıkladığımızda verilerimizin ayrıntı bölümünün (örneğimizde bu bölümde sadece çocuk adları var; fakat çok daha fazla bilgi bulunabilirdi) hangi alanlara göre sıralanması istediğimizi belirlediğimiz pencereye geliyoruz. Bu örnekte çocuk adlarına göre sıralamanın fazla bir anlamı olmadığı için İleri'yi tıklayabiliriz. Fakat başka örneklerde kayıtların da kendi içlerinde sıralanması uygun olabilir.
Şimdi raporun sayfa düzeni ile ilgili penceredeyiz. Sayfada yer alacak unsurların yerleşim düzenini belirlediğiniz Yerleştir bölümündeki farklı seçenekleri tıklayarak, raporun biçiminin nasıl değiştiğine dikkat edin. Raporun kağıda dikey veya yatay basılmasını da buradaki yönlendirme seçeneği ile sağlarız. Kimi zaman bir "öbek" veri (bir soyadındaki kişi, eş ve çocuk adları; bir firmanın o firmaya ait bütün alanları, vs.) aynı sayfaya sığmayabilir. Bu durumda Access 2000'i bütün alanları aynı sayfaya sığdırmak üzere biraz fazla çaba harcamaya sevkedebilirsiniz. Eğer bu sayfanızı çok sıkışık bir görünüme zorlarsa, daha sonra bundan vaz geçmeniz ve raporun tasarımını yeniden yaparak, bir alan grubunun bittiği yere sayfa sonu komutu koymanız mümkündür. Bizim örneğimizde "Anahat 1" adlı yerleşim düzeni daha uygun olacaktır. Bu seçeneği ve İleri düğmesini tıklayalım.
Access 2000 şimdi raporun nihai görünümü için bizden bir stil seçmemizi istiyor. Access bize kullanılmaya hazır altı ayrı rapor stili sunan. Bunların adını seçtiğinizde raporunuzun yaklaşık nasıl görüneceğini soldaki örnek kutusunda görebilirsiniz. Bu pencerede arzu ettiğiniz bir stili seçip, İleri'yi tıklayın. Ve son ekranda raporunuza bir isim verdikten sonra, sihirbaza ya tasarım, ya da baskı önizleme penceresini açmasını bildireceksiniz; önizlemeyi seçerek, Son'u tıklayın.
Raporun görünümünü belki beğenmemiş olabilirsiniz, ama adres defterinizdeki isimlerin soyadına göre tasnif edilmesi ve isimlerin, eşlerin ve çocukların adlarının bir öbek halinde toplanmış olmasını etkileyici bulacağınıza kuşkum yok. Sayfa düzeninin beğenmediğimiz taraflarını tasarım görünümünde anında düzeltebiliriz. Buradaki örnekte, alan adlarında Türkçe karakter kullanmaktan kaçındığımız için olan ve şimdi hata gibi görünen ("Soyadi" gibi) ögeleri düzeltebiliriz; ayrıca soyadı değerlerinin diğer isimlerle soldan hizalanmasını sağlayabiliriz. Örneğin, isimlerin etrafındaki çerçeveleri kaldırmak hiç de fena olmaz! Böyle bir raporun her sayfasında basılmasını istediğimiz firma logosu gibi grafik unsurları da tasarım görünümünde sayfamıza yerleştirebiliriz. Ayrıca raporlarımızda, yeni renkli yazıcıların imkanlarından yararlanmak üzere fotoğraf, renkli metin yazıları ve başlıklar kullanabilir; ayrıca belirli alanların arka planına renkli zeminler koyabiliriz. Access 2000'in rapor tasarım araçları masaüstü yayıncılığa taş çıkartacak imkanlara sahiptir.
Access 2000'in rapor tasarım araçlarını keşif faaliyetiniz sırasında, raporların herhangi bir yerinde (örneğin sayfa altbilgisi alanında) dosyanın ve bulunduğu dizinin adını nasıl yazdırabileceğinizi de araştırın. Çoğu raporda bu bilgi, sizi veya başkasını saatlerce aramadan kurtarır!
Bu Internet çağında, herkesin bir Web sayfası edindiğin günümüzde Access 2000'in bundan mahrum olacağını düşünmüyordunuz, herhalde! Bütün Ofis 2000 programları gibi, Internet, Access 2000'in de "göbek adı!" Bu kitapçığın kapsamı dışında kalan diğer bir çok bazı özelliği ve Access Projesi denen dosya türüyle oluşturabileceğinin veritabanı sunucu (MS SQL Server) bağlantısı sayesinde Access 2000, sadece kendi oluşturduğu veritabanlarını değil, fakat çok daha büyük dosyalar için son kullanıcı görevi yapabilir. Biz burada Access 2000 ile kendi verilerinizi Internet'e veya Intranet'e açma imkanından söz edeceğiz. Başka bir deyişle, Web Sayfaları'ndan.
Access 2000 öncesi, Internet'te veri-bağlantılı sayfa yapmak zordu. Access 2000 ile bütünleştirilmiş olan bazı ActiveX araçları, veri dosyalarını Internet'e açmayı oldukça kolay hale getiriyor. ActiveX, Microsoft'un OLE teknolojisinin gelişmişi, Java applet benzeri bir teknolojidir ve Access 2000 kullanıcısının, verileri Internet sayfalarında kullanılır hale getirirken bu ve benzeri teknolojilerin nasıl işlediğini bilmesi de gerekmez. Ne var ki Access 2000 ile oluşturacağınız veri-bağlantılı sayfaların işleyebilmesi için ActiveX teknolojisinin ziyaretçinin kullanacağı Web Browser programı tarafından sağlanması gerekir. Bunu sağlayan browser ise yine Microsoft'un Internet Explorer 5.0 programıdır. IE5'in Access 2000'in veri sayfalarını gerektiği gibi yorumlayabilmesi için de çalıştığı işletim sisteminde Winsock32 denen sistemin bulunması, başka bir deyişle Windows sisteminin 95, 98, NT 4 veya 2000 olması gerekir. Access 2000 verilerinizin Internet'te başka işletim sistemleri ve başka browser sahibi ziyaretçiler tarafından da görülmesini istiyorsanız. yine eski usul ODBC tekniklerinden yararlanmak zorundasınız.
Access veri tablolarının tasarımından söz ederken, yeni bir veri türü olarak Access 2000'in köprü (hyperlink, Internet bağlantı adresi) kabul ettiğini söylemiştik. Bu, Access 2000'in Internet ile ilgili becerilerinin sadece biridir. Access'in gerçek Internet marifeti ise veri tablolarını Internet sayfası haline getirmesidir. Access tablolarınızı Internet'e açmak için HTML dilini bilmeniz ve Web sayfası tasarımına aşina olmanız da gerekmez. Access verileriniz Internet'e iki tazrda açılabilir:
Duragan: Access 2000 tablosunun olduğu gibi HTML diline çevrilmesidir. Bir bakıma Access tablosunun fotoğrafının çekilmesi ve bu fotoğrafın Internet'te yayınlanması anlamına gelir. Kendi sistemininizde kalan gerçek Access 2000 tablosu daha sonra güncelleştirilir, veriler değiştirilir veya yeni alanlar eklenirse, bu değişiklikler Internet'e açılmış olan veri sayfasına yansımaz. Bunu herhangi bir tablo açıkken Dosya menüsünden Ver maddesini seçerek ve açılacak diyalog kutusunda kayıt türü hanesinde HTML Belgeleri seçeneğini seçerek yapabilirsiniz. Ortaya çıkan HTML belgesinde Access tablosunun görüntülenen alanları ve içlerindeki değerler, bir HTML tablosu olarak yer alır.
Orta çıkan belge tablonun adını taşır ve artık Access 2000 ile hiç bir ilgisi kalmamış demektir. Bu belgeyi Access 2000 tablosuna uygun şekilde güncelleştirebilmek için Access'ten yeniden Ver işlemi yapmanız ve bu belgeyi yeniden kaydetmeniz gerekir. Access 2000 ile oluşturduğunuz ve veri içeren bir HTML belgesini Internet sitenize yerleştirdiyseniz, eskisini yeni belgeyle değiştirmeniz gerekir. HTML tablo oluşturma işini ne kadar kolaylaştırmış da olsanız, elle yapacağınız bu işlem, biraz sonra göreceğimiz işleme göre durağan sayılır.
Dinamik: Basit HTML belgesi oluşturmak yerine, Veri Erişim Sayfası Sihirbazı'nı kullanarak, Internet'e başkalarının sizin verilerinize erişmesini sağlayan bir HTML sayfası koyabilirsiniz. Böyle bir sayfa yapmak, Access 2000 açısından duragan veri sayfası yapmak kadar kolaydır; fakat Internet sitesinin bulunduğu Web Server, veritabanı dosyası ve Access arasında işbirliğini sağlamak Internet'in nasıl işlediğine ilişkin bilgiler gerektirebilir. Bu yolla oluşturacağınız sayfaların Internet'e konulması ve Internet ziyaretçilerine açılması işine sonra döneceğiz; şimdi işin Access 2000 içinde yapılacak bölümünü ele alalım. Internet veya bir firmanın dahilî Intranet'inde yayınlanacak verilerin bulunduğu veritabanını açın ve Veritabanı penceresinde nesneler listesinden Sayfalar'ı tıklayın. Access, tasarım görünümünde ve sihirbazı kullanarak veri sayfası oluşturma kısayollarının yanında, daha önce oluşturduğunuz (yani "zaten varolan") bir veri erişim sayfasının açılmasını önerecektir. Sihirbaz seçeneğini tıklayın; sorgu, form ve rapor oluşturma sırasında iyice aşina olduğumuz sihirbazın birinci penceresi açılsın.
Bu pencere bize veri erişim sayfamıza birden çok tablo veya sorgudan alan seçebileceğimizi gösteriyor (Neden?). Üstteki Tablolar/Sorgular listesinden Aile tablosunu, altındaki alanlar listesinden Ad, Soyad, Eşinin Adı alanlarını; sonra tekrar üstteki listeden Çocuklar tablosunu ve alan listesinden Adı'nı sağdaki Seçili Alanlar listesine aktaralım. İleri'yi tıkladığımızda gelen pencereye de yabancı değiliz. Gruplandırma yapabilmek için bizden alan seçmemizi isteyen bu pencere Aile tablosundan Soyadı alanını seçelim; pencerenin sağdaki örnek bölümünde HTML sayfasının kaba bir tasarımını göreceksiniz. Tekrar İleri'yi tıklayalım. Üçüncü pencerede de Ayrıntılar bölümünün sıralanmasını arzu edip etmediğimiz sorulacaktır. Örnek tablomuzda buna ihtiyaç yok, ama siz başka bir veri tablosunu kullanıyorsanız ve kayıtlarınızın kendi içinde sıralanmasının uygun olacağını düşünüyorsanız, bunu dört seviyeli olarak yapabilirsiniz (İl, İlçe, Mahalle, Bayiin Adı, gibi). İleriyi tıkladığınızda bu kez Access, ortaya çıkacak HTML dosyasının adını isteyecek, Son'u tıkladığınızda sayfanın tasarımın görünümünde mi, yoksa browser'da görüleceği gibi görünmesini mi arzu ettiğinizi soracak, ve bir de sayfanızda bir "motif" uygulanıp uygulanmaması konusunda karar vermenizi isteyecektir. Sayfa motifi veya ana tema Web tasarımcılığında bir sitenin bütün sayfaları arasında görsel birlik kurmakta kullanılan bir tekniktir. Access 2000, Office 2000 ailesi programların (ve başlıca FrontPage 2000'in) kullandığı temaları oluşturacağınız Veri Erişim Sayfalarına uygulamanıza yardımcı olabilir. Bunun için buradaki motif kutusunu işaretlemeniz yeter. Motif kutusunu işaretlediğiniz taktirde, Access 2000, Office 2000 programlarının ortak tema diyalog kutusunu açacaktır.
Bu kutuda sol tarafta 24 (ekleme yaparsanız daha çok) tema adını içeren bir liste göreceksiniz. Sağda ise seçtiğiniz temaya göre veri erişim sayfasında uygulanacak biçimi inceleyebilirsiniz. Burada "Çubuklar" adlı temanın seçildiğini görüyoruz. Son'u tıkladığımızda ise diğer sihirbazlardan farklı olarak karşımıza bir Web sayfası tasarımı yapmaya elverişli bütün araçların ve denetimlerin bulunduğu tasarım görünümü gelecektir. Telaşa gerek yok: Burada yapacağınız tek şey, sayfaya bir başlık vermekten ibarettir. "Başlık yazmak için burayı tıklayınız" yazısını tıklayarak sayfanıza kendi başlığınızı yazabilirsiniz. Bu görünümde yapabileceğiniz bir başka değişiklik ise sayfanın veritabanı ile "canlı" ilişkisini kuran Sihirbaz'ın (Wizard) bazı kontrollere kendi adının kısatlmasını yazması dolayısıyla bu ifadeleri Türkçeleştirmek olabilir.
Burada görülen araçlar ve denetimlerin kullanımı büyük ölçüde HTML bilgisi gerektirir. Özellikle veritabanı ile sayfanızdaki veri görüntülenecek kutular arasındaki ilişkiyi sağlayan Recordset ActiveX nesneleriyle ilgili ve Access 2000 tarafından XML diliyle yazılan kodların değiştirilmesi Web sayfası ile ona hayat veren, verileri canlı tutan ilişkiyi kesebilir. Burada yaptığımız örneğin Access 2000 içinde Web sayfası olarak görünüşü ile aynı sayfanın Internet'te Web browser ile ulaşıldığı andaki görüntüsünü görüyorsunuz:
Bilgisayarınızdaki veri tabanı bu örnekte olduğu gibi Web Server'a bağlı ise, kendi sabit diskitinizdeki Access dosyasında yapacağınız herhangi bir değişiklik o sırada sayfanızı Internet'te izleyen ziyaretçilerin ekranına yansıtılacaktır.
Access 2000 ile giriş düzeyinde yapılabilecek işlerin bir kısmını görmüş olduk. Daha doğrusu, Access'in imkan ve yeteneklerinin şöyle bir üstünü açtık. Geride daha çok şey var. Formları daha albenili yapmaktan tutun, başka veritabanı programları ile bilgi alışverişine, hesap ve işlev yapan sorgulardan, SQL Server veritabanlarını işlemeye kadar.. Ama her büyük yolculuk bir ilk adımla başlar. Bu kitapçıkla, Access 2000 dünyasına ilk adımı atmış oluyorsunuz.
89
Bilgisayar Dershanesi / Re: ACCESS VERİ TABANI
Son İleti Gönderen Karamsar - Şub 23, 2019, 10:49 öö
onaylattırmak istediğinde Evet'i tıklayın. Şimdi ilişki oluşturmaya sıfırdan başlayabiliriz. Ö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ı sarısayla 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.
Dizin
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.
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, 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 MicrosoftSQL 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 öğreceğiniz SQL, size bu teknolojilerie ilk adımı atmayı sağlayacaktır.
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ı kavradığı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.
"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 (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; 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.
İster insanlar arasında, ister tablolar arasında olsun, ilişki zor şeydir; itina ve dikkat, önceden planlama ve sihirli bir anahtar ister! İnsanlararası ilişkide sihirli anahtar nedir sorusunu Access 2000'e ayrılmış bu kitapta ele alamayız. (Zaten bu konu bu kadar bir kitapçığın kapsamını aşar.) Fakat hemen belirtebiliriz ki, Access'te başarılı bir veri-işlemin sihirli anahtarı Birincil Anahtar'dır: tablolar arasındaki ilişkiyi bu Anahtar ile kurarız, ve göreceğimiz gibi, daha bir çok kapıyı bu anahtarla açarız.
İkinci bölümdeki alıştırmayı yaptıysanız, oluşturduğunuz her tablonun tasarım görünümünü kapatırken, Access 2000'nin bu tabloda bir Birincil Anahtar tayin edilmediğini vurgulayarak sizden ısrarla bir alanı Birincil Anahtar olarak belirleminizi istediğini görmüş olmalısınız. Neden? Çünkü birincil anahtar her tabloya, daha sonra bir başka tablo ile ilişkilendirmek istediğinizde bu ilişkide özgün kişiliğini verecektir. Birincil anahtar olarak belirlenen alandaki bilgilerin benzersiz olması gerekir. Access sizi buna zorlamaz, ama birincil anahtar alanındaki bilgileriniz her kayıt için benzersiz değilse, neden birincil anahtar olarak atamış olabilirsiniz? Birincil anahtar, bir kaydı, bir başka tablodaki bir kayıtla birleştirmekte kullanacağımız anahtardır. Birincil anahtarın diğer işlev ve yararlarına kısaca değindikten sonra kayıt birleştirmedeki rolüne döneceğiz.
Her tablonun bir, ama sadece bir, Birincil Anahtarı olabilir. Access 2000, her tablonun birincil anahtarını otomatik olarak endeksler (ve bu sayede veritabanı daha hızlı çalışır). Tablonuzda siz bir alanı Birincil Anahtar olarak atamadıysanız, Access 2000 bir birincil anahtar alanı oluşturmak ister; bunu onayladığınızda bir otomatik sayı alanı açar; tablonuzda zaten birinci alanda otomatik sayı türü bir veri varsa, Access 2000 bu alanı birincil anahtar olarak atar. Bu sebeple, iyi bir tablo tasarımı ilerde kullanmayacak bile olsanız, birinci alanı otomatik sayı olarak belirlemeyi gerektirir.
Birincil anahtar, hemen hemen daima sadece bir alandan oluşur. Fakat Access 2000, ancak çok pahalı veritabanı Server programlarının yapabileceği bir imkana da sahiptir: veri-işlem işiniz birden fazla alandan oluşan Birincil anahtar kullanmanızı gerektiriyorsa, bunu yapabilirsiniz. Çok-alanlı Birincil Anahtar, ileri düzeyde veri-işlem ve sorgulama bilgisi gerektirir.
Her veri türü birincil anahtar olamaz: birincil anahtar olarak kullanamayacağınız veri türleri, Internet adres bağlantısı (köprü), OLE ve not türleridir. Buna göre, metin, sayı, tarih/saat, para birimi, Evet/Hayır, ve otomatik sayı alanları birincil anahtar olarak kullanılabilir. Tablolarınız, birincil anahtar alanına göre otomatik olarak sıralanır. (Eğer bir Evet/Hayır alanını birincil anahtar yapmaya kararlıysanız, tablonuzda en fazla iki kayıt olması gerekir. Neden?) Birincil anahtarın tabaloda birinci alan olması gerekmez; herhangi bir alan birincil anahtar olabilir. Fakat kendinizi tabolalarınızda birincil anahtar arama zorluğundan kurtarmak için daima birinci alanı birincil anahtar yapacağınız veriye ayırmanız iyi bir alışkanlık olur.
Birincil Anahtar Tayininde Püf Noktası
"Tablomda hangi alanı birincil anahtar yapmalıyım?" sorusu kaçınılmaz olarak sorulacak sorudur. Bu sorunun bir cevabı olabilir: Benzersiz veri içeren alanlardan birini birincil anahtar yapın. Birincil anahtar seçiminde anahtar kelime, "benzersiz" kelimesidir! Seçeceğiniz alandaki veri, her kayıt için özgün olmalıdır; başka hiç bir kayıtta tekrar etmemelidir. Kişilerin adlarını, soyadlarını içeren alanlar özgün olamaz. Öğrenci numaraları, araç plaka numaraları da bir kaç yıl sonra tekrar başka öğrenciye veya araca verilebilir. Telefon numaraları bir ülke için özgün olabilir (her bölgenin kodu farklı olacağı ve aynı bölge kodunda benzer numara bulunmayacağı için), ama veritabanınızda örneğin bölge kodu aynı olan Istanbul ve New York kentlerindeki dostlarınızın telefon numaraları varsa, zor bir tesadüf bile olsa, aynı numara bulunabilir.
Birincil anahtar alanı belirlerken, tablonuzda özgün-benzersiz veri bulunan alan arayın. Bütün alanlarınızdaki verilerin tekrar etmesi ihtimali varsa, yeni bir alan açın ve içine otomatik sayı koyun.. Gerisini Access 2000 düşünsün!
Bir tabloda birincil anahtar alanı tayini son derece kolaydır. Tabaloyu tasarım görünümünde açın; birincil anahtar olarak atamak istediğiniz alanın adının bulunduğu kutuyu sağ-tıklayın ve açılacak menüde birinci madde olan Birincil Anahtar maddesini seçin. Bu alanın adının önündeki kutuda küçük bir anahtar simgesi belirecektir.
Birincil anahtarın veritabanı için önemini ortaya koyacak küçük bir deney yapalım ve sonra birincil anahtarın birincil görevi olan tablo ilişkilendirme konusuna dönelim.
Yukarıdaki alıştırmayı yaptıysanız Çocuklar tablosunu (veya herhangi bir alanı Birincil Anahtar olarak tayin edilmiş bir başka tabloyu) açın, ve yeni bir satırda birincil anahtar alanına mevcut değerlerden birini tekrar yazın. İşinizin bittiğini belirtmek üzere başka bir hücreyi tıklayın; Access 2000 hemen hata mesajı verecektir:
Birincil anahtar alanındaki verinin özgün olması gerekir; yoksa bu anahtar aslî görevini yapamaz.
Tablolar arasında ilişki kurmak suretiyle, veritabanı dosyamızı düz veritabanı olmaktan kurtardığımızı söylemiştik. Tablolar arası ilişki, Access 2000'in daha hızlı sorgu icrası yapmasını sağlar; veri-işlem işlerimiz daha verimli olur. Bu sayede verilerimizi güncelleştirirken, bütün tabloları elden geçirmek ve hatta yeniden girmek zorunda kalmayız; sadece güncelleştirilmesi gereken tabloya ek veya bu tabloda değişiklik yaparız.
Bir firma düşünelim: en az 200 firmadan hammadde alıyor ve en az 500 bayie mamül madde veriyor. Bu firmaların adreslerinden, alınan hammadde ve verilen mamül maddelerin özelliklerine kadar, diyelim ki 2 bin sütun dolduran verilerimizi tek tabloda topladığımızı varsayalım. Böyle bir tabloda, aldığımız mallara ilişkin bilgi sütunları, sattığımız mallara ilişkin satırlarda boş kalırken, sattığımız mallara ilişkin bilgi sütunları aldığımız mallara ilişkin satırlarda boş bırakılmak zorundadır. Bu hem gereksiz yere şişkin bir veritabanı dosyasına yol açar, hem de veri girişinde sayısız hatalara sebep olur. A firmasından aldığımız yeni bir mala ait yeni bir kayıt girerken, firmanın adından adresine, faks numarasından posta koduna kadar bütün bilgileri yeni satıra tekrar yazmak zorunda kalırız. Bu, yeni yazım hatalarına davetiye çıkartmak demektir. Tekrar eden bu bilgilerin dosya boyutuna bindireceği yükü düşünün!
Verilerimizi tek tabloda toplamanın sakıncalarını anladık. Ve diyelim ki elimizde böyle, beş veya altı tabloya bölünmüş bir veritabanı var. Şimdi, son 3 ay içinde mal aldığımız firmaların bir dökümünü çıkartmak istiyoruz. Beş-altı ayrı tabloyu mu kağıda dökeceğiz? Bu ayrı ayrı tablolara bölünmüş bilgileri nasıl birleştireceğiz? Başka bir deyişle, ayrı tablolara böldüğümüz verileri işare yarar, anlamlı diziler haline getirmek için nasıl birleştirebiliriz?
Bunu, tabloları herbirinin diğeri için anlamlı tek özgün alanından, yani Birincil Anahtarlarından birleştirerek yapabiliriz. Veritabanınızı bu birden fazla tabloya bölerek ve herbirine özgün birincil anahtar alanları koyarak tasarlasanız bile, aynı veritabanı içinde yer alıyorlar diye tablolarınız kendiliklerinden ilişki kurmazlar. Bunu bizim sağlamamız gerekir. Kendi tablolarımızda kendi ilişkilerimizi oluşturmadan önce, Access 2000'nin bunu nasıl sağladığını görmek, ilişki konusunda bize daha iyi fikir verecektir. Bunun için Access 2000'i çalıştırın; Yeni veritabanı oluşturmak üzere açılan pencerede Veritabanları sekmesini seçin ve Stok Yönetimi şablonunu işaretleyin. Yeni boş stok yönetimi veritabanınız oluşturulduğunda, eğer Access penceresi içinde küçültülmüş durumda ise veritabanı penceresini büyütün; Switchboard adı verilen veritabanını kullanmanız için oluşturulan grafik arayüzü kapatın. Stok Yönetimi1 adlı yeni stok yönetimi veritabanınızın nesnelerinden Tablolar'ı seçtiğinizde, yedi adet aslî tablo oluşturulduğunu göreceksiniz: Ürünler, stok hareketleri, kategoriler, çalışanlar, sipariş formları, üreticiler ve nakliye yöntemleri. Stok yönetimi konusu ile hiç ilginiz yoksa bile, sadece ilişki konusunu kavramak için, bu tabloların bir firmanın elindeki stokları takip için gerekli ve yeterli olduğunu varsayalım.
Şimdi, Araçlar menüsünden İlişkiler maddesini seçin. Karşınıza şuna benzeyen bir pencere açılacaktır:
Açılan penceredeki kutular arasındaki çizgiler buradaki görüntüye benzemiyorsa, kutuları Mouse işaretçisiyle başlıklarından tutarak sürükleyebilir ve konumlarını buradakine benzer şekle getirebilirsiniz. Bu pencerede, kutuların başlığının tablo adlarını içerdiğine dikkat edin. Kutuların içindeki maddeler ise tablolardaki alanların adlarıdır. Her tablonun kutusunda bir alan adının koyu yazıldığını görüyor musunuz? Bu, o tablonun birincil anahtarı olan alandır. Bazı alanlardan çıkan çizgilerin diğer bir kutudaki alana bağlandığını görüyorsunuz. Dikkat ederseniz, aralarında çizgi bulunan alan adlarının aynı olduğunu da göreceksiniz.
Bu çizgilere ilişki denir; tabloların birbirleri ile hangi alanlarından ilişkide olduklarını gösterir. Şemaya veya Access İlişkiler Penceresi'ne tekrar bakarsanız, ilişki çizgilerinin bazılarının sol ucunda "1," sağ ucunda sonsuz işaretinin bulunduğunu, bazı ilişkilerde işaretlerin yer değiştirdiğini ve diğerlerinde ise çizgilerin işaretsiz olduğunu göreceksiniz. Bu işaretler kurulan bağın niteliğini gösterir; bağın niteliği ise daha sonra iki tablo arasında yapılabilecek birleştirmede hangi kayıtların hangi kayıtlarla birleştirileceği veya Access'in deyimiyle eşleştirileceğini tayin eder. Bu tanımla biraz şifreli görünüyorsa da Access'te kurabileceğimiz ilişkilerin niteliklerini ele alınca manzara aydınlığa çıkacaktır. Tablolarınızın arasında üç tür ilişki olabilir:
Bire bir ilişki: İlişkilendirdiğiniz iki tablodan birincisi ile ikincisi arasında sadece bir kayıt eşleşebilir. Bu tür ilişkilendirmeyi tabalolarımızda sık kullanmadığımızı göreceksiniz; çünkü genellikle böyle tek gerçekli tablo yapmayız.
Bir-çok ilişkisi: Birbirine bağladığımız iki tablodan birindeki bir kayıt diğer tabloda birden fazla kayıtla eşleşebilir. İkinci bölümdeki örneğimizi hatırlarsanız: bir ailenin birden fazla çocuğu olabilir; fakat her çocuğun sadece bir ailesi olabilir. Dostlarnımızın çocuklarıyla birlikte bir tablosunu edinmek istersek, üç çocuklu dostlarımızın adı yeni tabloya üç ayrı satırda yazılacak, iki çocuklu dostlarımızın adları iki, tek çocuklu dostlarımızın adları ise bir kere girecektir. Neden? Çünkü aile bağı (Aile Sıra No alanı), Çocuklar tablosunda çok kayda işaret ediyor.
Çok-çok ilişkisi: İlişkilendirdiğimiz tablolardan birincisinde birden fazla alan, ikincisinde birden fazla kayda (ve tabiî ikincisindeki birden fazla alan birinci tablodaki birden fazla kayda) işaret ediyorsa, bu kez tablolar arasında çok-çok ilişkisi var demektir. Örnek tablomuzda böyle bir durum yok, ama bir sipariş veritabanı düşünün: her bir sipariş emrinde birden fazla mal sipariş ediliyor olabilir; mal tablosunda ise her bir mal birden fazla sipariş tablosunda görünüyor olabilir. Böyle bir ilişkinin sonucu ortaya çıkacak üçüncü tabloda hem hem her bir sipariş, hem de her bir mal birden fazla satırda görünecektir.
Şimdi bu bilgilerin ışığında biraz önce oluşturduğunuz Stok Yönetimi veritabanının ilişkiler penceresine bakalım. Şimdi bu veritabanındaki dosyaları kullanarak, firmamızın verdiği siparişlerle ilgili ve siparişi veren personele göre sipariş miktarlarını gösteren yeni bir tablo yapabilir miyiz? Yapabiliriz. Siparişi veren Personel, hangi tabloda hangi alandaki bilgi ile bulunacak? Çalışanlar tablosundaki ÇalışanNo alanındaki veri ile. Peki, bu alandaki kayıtlar, hangi tablodaki hangi alanda bulunan kayıtlarla eşleştirilecek? Sipariş formları tablosundaki ÇalışanNo alanındaki kayıtla. Yani Çalışanlar tablosundaki ÇalışanNo alanındaki veri Ahmet Çalışkan arkadaşımıza ait 812 ise ve bu değer, Sipariş formları tablosundaki kayıtlarda ÇalışanNo alanındaki değerlerle eşleşiyorsa, bu kayıt yeni tablomuza alınacak; sonra sırasıyla diğer değerler taranacak, eşleşenler yeni tabloya dahil edilecektir. ("Yeni tablo nerede ve nasıl oluşacak?" sorusunu şimdilik sormayın; bunu Sorgu ile yapacağız; ve daha sonra ele alacağız.) Çalışanlar tablosundaki ÇalışanNo alanında Mehmet Tembeloğlu arkadaşızı belirten 813 şeklindeki veri, Sipariş formları tablosundaki kayıtlarda ÇalışanNo alanındaki hiç bir veri ile eşleşmiyorsa ne olacak? Yeni tabloda 813 şeklindeki ÇalışanNo'yu içeren bir kayıt olmayacaktır. Ve muhtemelen Mehmet Tembeloğlu, neden hiç sipariş vermediğini izah etmek zorunda kalacaktır!
Tablolarımız arasında ilişki oluşturma işini kendimiz yapmak istersek, yine biraz önce açtığımız Araçlar menüsünden İlişkiler maddesini geçerek açtığımız pencereyi açmamız gerekir. İkinci bölümdeki Adres Defteri alıştırmasını yaptıysanız, şimdi bu veritabanı dosyasını açabilirsiniz. Bu alıştırmayı yapmadı iseniz, şimdi ikinci bölüme dönüp bu dosyayı oluşturabilirsiniz! Veritabanı açıldığında veya tabloları oluşturma işini bitirdiğinizde Araçlar menüsünden İlişkiler maddesini seçin. Karşınıza şuna benzeyen bir görünüm gelecektir:
Biz kurmadığımız halde iki tablomuz arasındaki bu ilişki, Çocuklar tablosunu oluştururken, Aile Sıra No alanının doldurulması için Aile tablosunun aynı adlı alanına girilmiş kayıtlara bakılmasını istemiş olmamızdan kaynaklanıyor. Burada gördüğünüz çizgiyi ortasından sağ tıklayın ve açılan menüden Sil maddesini seçin; Access silme işlemini onaylattırmak istediğinde Evet'i tıklayın. Şimdi ilişki oluşturmaya sıfırdan başlayabiliriz.
Ö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ı sarısayla 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.
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.
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ı.
Yapılandırılmış Sorgu Dilinin 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 MicrosoftSQL 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 öğreceğiniz SQL, size bu teknolojilerie ilk adımı atmayı sağlayacaktır.
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ı kavradığı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.
"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ı
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
90
Bilgisayar Dershanesi / Re: ACCESS VERİ TABANI
Son İleti Gönderen Karamsar - Şub 23, 2019, 10:48 öö
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 gerekir!
Veri Düzenleme (Editing)
Access'te belki de en kolay yapacağınız iş, tabloya veri girmek olsa gerek: yeni oluşturduğunuz veya önceden mevcut bir tabloyu, veritabanı penceresinde açın ve başlayın sütunlara ve satırlara gönlünüzden geçenleri yazmaya. Fakat bunun daha kolay yolları da var. Önce veri tablomuzun ekrandaki penceresinde yapabileceğimiz görünüm değişikliklerinden söz edelim. Veri tablosunu, adını iki kere tıklayarak (Araçlar menüsünden Seçenekler maddesini ve Görünüm sekmesinde "Tek tıklatmada aç" seçeneğini seçerek bunu değiştirebilirsiniz), veya tabloyu seçtikten sonra Veritabanı penceresinde Aç simgesini tıklayarak açabilirsiniz. Bir tablonun adını sağ tıklayıp, açılacak menüden Aç maddesini de seçebilirsiniz.
Görünüm
Açtığınız bir veri tablosunun sütun genişliği, o alandaki verilerin tümünü rahatça okumanıza engel oluyorsa, iki sütun başlığının ortasındaki çizgiyi Mouse işaretçisi ile tutarak, sağa veya sola oynatarak, sütun genişliğini değiştirebilirsiniz. Bu sırada Mouse işaretçisi iki tarafında ok bulunan dikey çizgi şeklini alır.
Aynı şekilde satırlarınızın yüksekliğini de satır başlıklarının arasındaki çizgiyi Mouse işaretçisiyle tutarak, artırabilir, azaltabilirsiniz. Bir sütunun genişliğini değiştirdiğiniz zaman diğer sütunların genişlikleri etkilenmez; ancak bir satırın yüksekliğini değiştirirseniz, bütün satırların yüksekliği değişmiş olur. Sütun genişliklerinin Access 2000 tarafından otomatik olarak ve optimum ölçüde ayarlanmasını sağlamak için sütun başlığının sağ sınır çizgisini iki kere tıklayabilirsiniz. Sütun genişlikleri ve satır yüksekliklerini, sütunu ve satırı seçerek Biçim menüsündeki ilgili maddeleri seçerek de yapabilirsiniz. Mouse işaretçisini sütun veya başlığının üzerine getirin ve tıklayın (işaretçi sütun başlığında iken imlecin kısa ve kalın bir aşağı ok şekline döndüğünü göreceksiniz); şimdi sütun veya satır başlığını tıklarsanız, bütün sütun veya satır seçilmiş olur. Biçim menüsünden Satır yüksekliği veya Sütun genişliği maddesini seçerek ve açılacak diyalog kutularına gerekli değerleri girerek, ayarları değiştirebilirsiniz.
Veri girmenizi ve verilenizi incelemenizi engelleyen, o sırada içeriğini görmeniz gerekmeyen sütunları geçici olarak gizleyebilirsiniz. Sütunu seçtikten sonra Biçim menüsünden Sütunları gizle maddesini seçerseniz, Access 2000 bu sütunları geçici olarak ortadan kaldırır. Yine Biçim menüsünden Sütunları göster maddesini seçerek ve açılacak kutuda görüntülenmesini istediğiniz sütunların adının önüne işaret koyarak, yeniden görünmelerini sağlayabilirsiniz.
Veri girme
Her veri tablosunun son satırı, yeni kayıt girmeniz için hazır sayılır. Yeni bir kayıt girmek için, sütun başlığında bir yıldız simgesi bulunan son satırın herhangi bir sütununa tıklayarak, klavyeden verilerinizi girebilirsiniz. Aynı işi Araç buçuğunda Yeni Kayıt simgesini tıklayarak da yapabilirsiniz.
Veri tablosu içinde kayıttan kayıda ve bir kayıtta alandan alana geçebilmek için, Mouse işaretçisini arzu ettiğiniz kutunun içinde tıklayabilirsiniz; klavyede ok tuşlarına, veya sekme ve Enter tuşlarına basarak imleci arzu ettiğiniz yere götürebilirsiniz; bu tuşların imleci yeni alanın başına mı, sonuna mı götüreceğini Araçlan menüsünden Seçenekler'i ve orada Klavye sekmesini seçerek de belirleyebilirsiniz. İlmecin içinde bulunduğu hücrenin satır başlığında bir kalem simgesi belirir; bu o satırın edit edilmeye (düzenlenmeye, değiştirilmeye, ek yapılmaya) hazır olduğunu gösterir. Bir mücrede varolan verinin önüne, arkasına, içine yeni veri yazabilirsiniz; mevcut veriyi silebilirsiniz; başka ylerde Windows panosuna kopyaladığınız metin, sayı veya diğer unsurları Access hücrelerinize yapıştırabilirsiniz. Windows Panosuna kopyalanmış unsur Access 2000 veritabanında bulunması imkanı olmayan bir unsur ise Düzenr menüsünde yapıştırmayla ilgili maddeler etkin olmaz; klavlede Ctrl+V tuşuna basmanız da bu öğeyi Acces veri tablosuna yapıştırmaz.
Bir kaydı (satırı) veya bir alanı (sütunu) silmek için Düzen menüsünden Kayıt Sil ve Sütun Sil maddelerini seçmeniz yeter. Araçlar menüsünder Seçenekleri ve Düzen/Bul sekmesinde Onayla bölümünde hangi silme işlemleri için Access 2000'in sizden oınay istemesini arzu ettiğinizi de belirtebilirsiniz. Kayıt silme işlemi, onaylandıktan sonra veritabanına kaydedilir ve bir daha geri alınamaz.
Veritabanındaki bilgilerin birbiri ile tutarlı olmasına bilgi tutarlılığı (referential integrity) denir ve bunu korumak için Access 2000 bazı sütunları ve tabloları silmenize izin vermez. Aşağıda ilişkilendirme konusu ele alırken, bilgi tutarlığından söz edeceğiz. Bazı sütunları ve satırları silmeye çalıştığınız zaman, ilişkileri korumak isteyen ve silme işlemi dolayısıyla başka kayıtları ve sorguları silmek zorunda kalan Access 2000, sizden onay isteyecektir.
Sıralama
Veri tablosundaki kayıtlar, belirli alanlar itibariyle artan veya azalan sıraya sokulabilir. Sıralamak istediğiniz sütunu seçin ve Araç çubuğunda artan veya azalan sıralama simgesini tıklayın. Bunu, Kayıtlar menüsünde önce Sırala, sonra da Artan veya Azalan sıralama maddelerini seçerek de yaptırabilirsiniz.
Sıralama işlemini sıralayacağınız sütundaki herhangi bir satırı sağ tıklayıp,açılacak menüden, Artan Sıralama ve Azalan Sıralama maddelerini seçerek de yapabilirsiniz. Artan sıra, sayılarda en küçükten en büyüğe, tarihlerde en eskiden en yeniye, metinlerde ise A'dan Z'ye demektir. Azalan sıra ise bunun tersidir. Access'te her bir satır bir kayıt sayıldığı için bir sütunu sıraladığınız zaman o satıra ait diğer hücrelerdeki bilgiler de sıralanan sütundaki hücre ile birlikte yeni yerlerine giderler; böylece bir satırın hücreleri yer değiştirmemiş olur.
Arama ve Değiştirme
Veri tablolarınız bir değeri gözle aramanıza imkan vermeyecek kadar büyük olabilir. Bu durumlarda bir değeri bulmak için Access 2000'in yardımını isteyebilirsiniz. Araç çubuğundaki Bul simgesini tıklayarak veya Düzen menüsünden Bul maddesini seçerek, arama yaptırabilirsiniz. Access 2000'in bir yeniliği Bul ve Değiştir araçlarının tek kutuda iki sekme halinde toplanmasıdır. İki sekme arasındaki görünüm farkı Değiştir sekmesinde bulunacak değerin yerine konulacak yeni değerin girileceği kutunun bulunmasıdır.
Bulma işlemi ya o sırada imlecin içinde bulunduğu bir alanda, ya da tablonun tümünde yapılır. Bul sekmesinde Aranan kutusuna aradığınız değeri yazın; aramanın yapılacağı yeri gösteren Bak kutusunun seçme okunu tıklayarak, aramanın tablonun tümünde mi, yoksa imlecin bulunduğu sütunda mı (imleç bir sütunda değilse, birinci sütunda) yapılacağını belirtin. Eşleştir kutusunda ise aramanın yapılacağı alan parçasını belirtebilirsiniz. Aradığınız değerin sadece alanın tümünü olduğu durumların bulunması için bu kutuda Tüm Alan; alanın herhangi bir bölümü olduğu durumların bulunması için Alanın Bir Bölümü; ve verdiğiniz değerle başlayan alanların bulunması için de Alanın Başlangıcı seçeneklerini seçmeniz gerekir.
Arama kontrollerinin tümünü görüntüleyerek arama kutusunu büyütmeye yarayan Tümü düğmesini tıklarsanız, Arama yönünü belirtebileceğiniz bir seçme kutusu ortaya çıkar. Buradaki seçenekleriniz, aramanın imlecin bulunduğu noktadan yukarı veya aşağı ya da tüm tabloda yapılmasını sağlar.
Bul kutusu genişlediğinde ortaya çıkan diğer bir kontrol unsuru ise aranan kutusuna yazdığınız değerin büyük harf-küçük harf oluşu ile bulunmasını istediğiniz değerin büyük hadrf-küçük harf oluşu arasında ilişki kurup kurmamaktır. Eğer Access, sizin kullandığınız harflerin büyük veya küçük oluşuna dikkat etsin istiyorsanız, Büyük Harf/Küçük Harf Eşleştir kutusuna işaret koyun. Bu durumda, örneğin "tas" değerini arattırdığınızda "Tas" ve "TAS" bulunmayacaktır.
Buradaki "Alanları biçimli olarak ara" kontrolü ise tarih/saat gibi veya para birimi gibi belirli biçimlerde görüntülenen alanların, veritabanında bulunduğu basit şekliyle değil, tablo tasarımı sırasında talep ettiğimiz biçimde ele alınarak arama yapılmasını sağlar. Bunu biraz açalım. Diyelim ki Tarih alanındaki değerlerimizin kısa tarih olarak biçimlenmesini istiyoruz. Bu biçim, Access 2000 tarafından ancak bu veri görünülendiği zaman uygulanır. Siz verileri "20-09-99" olarak girmiş olabilirsiniz; ama tasarım sırasında bu alan için uzun tarih biçimini seçtiyseniz, Access 2000, bu veriyi "20 Eylül 1999 Pazartesi" olarak biçimleyerek görüntüleyecektir. Arama yaparken, arama değeri olarak "20-09-99" yazar ve Access'ten bu değeri bulmasını isterseniz, ve "Alanları biçimli olarak ara" seçeneği seçilmiş olursa, aradığınız değer hiç bir zaman bulunamayacaktır. Çünkü Access sizin biçik talimatına uygun olarak tarihleri uzun biçimde biçimliyor fakat siz kısa tarih biçiminde aranacak değer veriyorsunuz. Oysa bu kutu işaretlenmemiş olsa idi, Access verdiğiniz meşru tarih biçimini tablosundaki bütün tarih biçimleriyle karşılaştıracak ve verdiğiniz tarihi bulursa, bu kaydı size gösterecekti.
"Alanları biçimli olarak ara" seçeneği seçilmiş olarak yapılan aramalar Access 2000'i olağanüstü yavaşlatır. Alanın bir bölümü" seçeneği ve aranan yerin tüm tablo olması da Access 2000'in arama hızını düşürür.
Değiştirme, bulmaya dayanan ve bulunan değerlerin sizin vereceğiniz bir değerle değiştirilmesi işlemidir. Değiştir aracının neleri bulabileceğini, Bul aracını tanırken gördük. Burada sadece sağdaki farklı kontrol düğmeleri üzerinde duralım.
Sonrakini Bul düğmesini tıkladığınızda Access 2000, sadece bulma işlemini yapar; hiç bir şey değiştirmez. Aradığınız değerin doğru bulunduğuna ve değiştirmenin verilerinize zarar vermeyeceğine emin olduktan sonra Değiştir düğmesini tıklayabilirsiniz. Bu noktada değiştirme işinden vazgeçerseniz, İptal düğmesini tıklayın. Değiştir düğmesi, sadece bulunan değeri değiştirmekle kalmaz, varsa, bir sonraki aranan değeri bulur. Tümünü Değiştir düğmesi ise tek tek bulma-değiştirme yerine tablonuzdaki tüm aranan değerleri otomatik olarak bulur ve onay gerekmeden değiştirir. Bu düğmenin gerçekten hızlı çalıştığını göreceksiniz. Ama bu düğmenin bir özelliği daha var ki, tıklamadan önce iki kere düşünmeniz yerinde olur: yaptığınız değişiklikler kalıcı olur; geri alınmaz.
Süzme
Bul aracı ile verilerde araştırma yapmak mümkün olmakla birlikte, kimi zaman belli bir ölçüte uygun tüm kayıtları birarada görmek isteyebiliriz. Bunu Süz aracıyla yaparız. Sözgelimi, elimizdeki veride sadece ikinci yarıyıl sınavında 5 alan öğrencilerin veya oturduğu yer Tekirdağ olanların, sadece erkeklerin veya sadece kadınların listelenmesini isteyebiliriz. Bunu yapmanın en kolay yolu Seçime Göre Süzme yöntemidir. Süzme ölçütü olacak verinin bulunduğu kaydın, ilgili alanını (sütununu) bulun ve Access 2000'e bu sütunda sadece bu değeri içeren kayıtları göstermesini, diğerlerini göstermemesini bildirin. Ölçük olarak kullanacağınız verinin bulunduğu sütunu tıklayın ve ya Araç çubuğundan Seçime Göre Süz simgesini tıklayın, ya da veritabanında bir yeri sağ-tıklayıp açılan menüden Seçime Göre Süz maddesini seçin.
Veri tablosunun büyüklüğüne ve seçtiğiniz alanın endekslenmiş olup-olmamasına göre, Access 2000, seçme ve sadece seçilenleri görüntüleme işini sür'atle yapacaktır.
Listede sadece seçilen kritere uygun veri içeren kayıtlar yer alırken, Araç buçuğundaki Süzgeci Kaldır simgesi de etkin hale gelecektir. Bu simgeyi tıklayarak, tablonun tümünü görüntületebilirsiniz. Access 2000, tablonuza uyguladığınız son süzme işleminin ölçütünü unutmaz ve bu simgeyi yeniden tıkladığınızda son süzme işlemi yeniden uygulanır. (Süzgeci kaldırdığınızda bu simgenin etiketi Süzgeci Uygula şeklinde değişir.) Bir tablonun tümünü değil sadece süzülmüş kayıtları içerdiğini, tablonun alt kenarındaki "(Süzülmüş)" kelimesinden anlarız. Bu kelimenin yanında kaç adet süzülmüş kayıt olduğu da gösterilir.
Seçme yoluyla süzme işlemi birden fazla alan veya değer ölçüt kullanılaarak da yapılabilir. Diyelim ki seçme işlemini bir sınıftaki öğrencilerin listesinde hem cinsiyet, hem de alınan nota göre uygulamak istiyorsunuz. Bunu yapabilmek için, uygulayacağınız birden fazla ölçüt veri değerinin tabloda yanyana sütunlara gelmesini sağlayın. Bir sütunun tümünü seçer ve Mouse işaretçisiyle sütun başlığını tutarak, işaretçiyi diğer iki sütunun arasına götürürseniz, işaretçinin bulunduğu aralıkta koyu tonlu bir çizgi oluştuğunu görürsünüz; Mouse işaretçisini burada bırakırsanız, sütun tümüyle bu yere taşınmış olur. Bu suretle sütunları yanyana getirerek, arama ölçütü olacak değerleri de birbirine komşu yapmış olursunuz. Şimdi, Mouse işaretçisini ölçüt olacak verilerin en soldakinin veya en sağdakinin üzerine getirin (işaret simgesinin kalın ve içi boş artı işaretine döndüğüne dikkat edin) ve Mouse'un sol düğmesini tutun; ölçüt olacak değerlerin sonuncusuna kadar sürükleyin. Ölçüt olarak kullanacağınız bütün veriler seçilmiş olacaktır. Şimdi, ya sağ tıklayarak ve açılan menüden Seçilenlere Göre Süz maddesini seçerek, ya da Araç çubuğundan aynı adı taşıyan simgeyi tıklayarak, Access 2000'e çok ölçütlü süzgeç uygulattırabilirsiniz.
Seçme yoluyla süzme işlemini, altalta kayıtların değerlerini ölçüt alarak da yapabilirsiniz. Bunun için, Mouse işaretçisini bir satırdaki bir değerin üzerine getirin ve işaret simgesi kalın ve içi boş artı işaretine döndüğünde, Mouse'un sol düğmesini tutarak ölçüt olarak kullanacağınız alttaki veya üstteki değerleri tarayın. Mouse'un düğmesini bıraktığınızda altalta birden fazla değer seçilmiş olacaktır. Şimdi yine sağ tıklama veya Araç çubuğunda tıklama yoluyla Access 2000'e Seçme yoluyla süzme işlemini yaptırtabilirsiniz.
Kimi zaman süzme işinde kullanacağınız değerler böyle kolay bir şekilde seçme yoluyma belirtilemez ve daha ayrıntılı süzme ölçütleri uygulamak isteyebilirsiniz. Bunun için Form Süzgeci yöntemini kullanmanız gerekir. Bu aracı, Kayıtlar menüsünden önce Süz ve sonra Form Süzgeci maddesini seçerek açabilirsiniz. Form Süzgeci açıldığı anda açık olan tablonun yerini alır. Bu yeni tabloda, solda, altta birincil ölçütü belirteceğiniz Ara, ve ikincil, üçüncül ölçütler için bir çok "Veya" sekmesi göreceksiniz.
Süzme ölçütünü tanımlamaya Ara sekmesinden başlamak gerekir. Bu sekme seçili iken, tabloda sıralanan alan adlarının altındaki hücreyi tıklarsanız, sağda seçme okunun görüntülendiğini göreceksiniz. Bu oku tıklayarak, tablonuzda bu alana girişmiş tüm değerleri görebilirsiniz. Burada istediğiniz kadar seçim yapabilirsiniz. Yine öğrenci tablosu örneğine dönersek, cinsiyet sütunundan "Kadın," birinci yarıyıl sınavı notları sütunundan "5," ikinci yarıyıl sınavı notları sütunundan "3" değerlerini seçebilirsiniz. (Bu durumda tablonuzdaki bütün kadın öğrencilerden birinci sınavda 5 ikinci sınavda 3 alanlar seçilmiş olacaktır). "Veya" sekmelerini tıklayarak süzgecin kapsamını genişletmek mümkündür. Sözgelimi, sınıftaki kadın öğrencilerden birinci yarıyıl sınavında 5 "veya 4 veya 3 veya 2 veya 1 veya 0" alanları seçmek isteyebilirsiniz. Her "veya" ölçütünden sonra Form'un sol alt kenarına yeni bir Veya sekmesi eklendiğine dikkat edin.
Notlarınızı tam sayı olarak değil de kesirli olarak veriyorsanız, süzmenin amacı zayıf durumdaki öğrencileri belirlemek olduğu halde bu son yöntemde örneğin 4,5 alanları göremezsiniz. Bunu sağlamak için bütün not ihtimallerini kapsayan "Veya" ölçütleri doldurmak gerekir. Oysa süzme ölçütlerini seçerek değil yazarak verebilir ve standart karşılaştırma işlemcilerini kullanarak, bütün ihtimalleri kapsayabilirsiniz. Bunun için, örneğin Birinci Yarıyıl Sınav Notları sütununun boş hücresine "<=4,9" (tırnaklar olmadan) yazarsanız, Access 2000 notu 5'den aşağı bütün öğrencileri bulacaktır. Burada dikkat edilecek nokta önce mukayese işlemcisinin, sonra değerin yazılmasıdır. Access 2000, standart mukayese işlemcilerini kullanır:
> Büyük
< Küçük
= Eşit
<= Küçük veya eşit
>= Büyük veya eşit
<> Eşit değil
Ölçütlerinizi belirttikten sonra Araç çubuğundan Süzgeci Uygula simgesini tıklayarak süzülmüş kayıtlarınızı görebilir; işiniz bittiğinde süzgeci kaldır simgesini tıklayarak asıl tablonuza dönebilirsiniz.
Gelişmiş Süzme Sıralama
Genellikle süzme işleminden sonra süzülmüş kayıtları içeren yeni tablonun bir alana göre sıralanması (örneğin öğrencilerin artan veya azalan not sırasına sokulması) gerekebilir. Süzülmüş kayıtları içeren geçici tablonun herhangi bir sütununu seçerek sıralama işlemi yaptırabilirsiniz. Fakat süzme ve sıralama işlemini, Kayıtlar menüsünden önce Süz, sonra Gelişmiş Süzme/Sıralama maddesini seçerek bir kerede yaptırtabilirsiniz. Bu maddeyi seçtiğiniz Access 2000, bu amaçla tasarlanmış özel bir Sorgu tasarım penceresi açacaktır. Bu teknikten yararlanmayı, Sorgu bölümünde ele alacağız.
Formlar
"Access'te bir tabloya veri girmenin kestirme yolu, tabloyu açıp, en alt satırdan itibaren verileri yazmaktır!" dedik. Fakat yanyana yüzlerce sütunu bulunan bir tabloda bunu yapmak kolay olmaz. Tablonun Access penceresinin dışında kalan sütunlarını görüntüye getirmek için sürekli kaydırma çubuğunu tıklamak zor olabilir. Oysa Access bize veri girme ve düzenleme işini form yoluyla yapma imkanı veriyor. Form, bir tablonun bir kaydının içeriğini (veya boş bir kayıt satırını) bir çok kontrolle birlikte tek pencerede toplayabilen bir araçtır. Formun eni-boyu da Access penceresinden büyük olabilir; fakat formun biçimini belirlemek, alanların nerede ve ölçüde görüneceğine karar vermek imkanı vardır. Ayrıca formun üzerine veri girmeyi kolaylaştıran ve kaydın parçası olmayan yardım ifadeleri yazabilir, grafiklerle formu süsleyebilirsiniz. Formda, Sil, Kaydet ve benzeri komutlar içeren düğmeler olabilir. Normal olarak formun her sayfası sadece bir kayıt içerir. Dolayısıyla dikkatinizi bir kayıt üzerinde toplayabilirsiniz. Oysa veritabanı penceresindeki tablo açıldığında görüntüye sığdırabildiği kadar kaydı sığdırır. Bu çoğu zaman bir kayıtla ilgili inceleme yapmayı zorlaştırır. Form, veri girmeyi mantıksal bir düzene bağlayabilir ve kolaylaştırabilir.
Otomatik Form
Access 2000, herhangi bir tabloyu anında forma çevirebilir. Form konusunu kavramak için en kestirme yol, açık veritabanında bir tabloyu açıp, Access'e bu tablodan otomatik form yapması talimatını vermektir. Bunun için Araç çubuğunda Yeni Nesne simgesini tıklamaktır. Bu araç, son yaptığınız işi hatırlar ve etiketinde bunu belirtir.
Access 2000, açık tablodaki bütün alanları, içine bilgi yazılacak kutular haline getirir; ve bunların önüne sütun başlığı olan alan adlarını etiket olarak koyar. Oluşturulan formda, kayıtlar arasında gezinmeyi bağlayacak kontroller, ve yeni kayıt için boş form edinme düğmeleri vardır. İşte yukarıdaki tablonun otomatik form haline getirilmiş görünümü:
Burada, bu formun başlığında ait olduğu tablonun adını görüyorsunuz. Aynı anda birden fazla tabloya veri girişi yapmakta kullandığınız form varsa, başlıklarıo anda hangi tabloya giriş yaptığınızı gösterir. Formun "kutuları" arasında klavyede sekme veya Enter tuşlarına basarak ilerleyebileceğiniz gibi, Mouse işaretçisini arzu ettiğiniz alanın içinde tıklayabilirsiniz. Geride kalan bir alana gitmek için klavyede üst karakter (büyük harf, Shift) tuşunu tutarken, Sekme tuşuna basın.
Formda, otomatik sayı olarak belirlenmiş alanlara yazı yazamazsınız; aynı şekilde Access'in değerini hesaplayarak bulduğu alanlara da klavyede değer giremezsiniz. Yeni kayıt için boş form açtığınızda otomatik sayı alanının içinde "(Otomatik Sayı)" ifadesini göreceksiniz. Bir formda imleç son kutuda iken klavyede Enter veya sekme tuşuna basarsanız veya imleç herhangi bir yerde iken Mouse işaretçisiyle başka bir kayda gitmek için gezinme düğmelerini veya yeni kayıt simgesini tıklarsanız, içinde bulunduğunuz kayıtta değişiklik yaptıysanız bu tabloya işlenir. (Bu işlem geri alınmaz.). Bir kaydın içinde iken klavyede üst karakter tuşunu tutarken Enter'a basarak, kayıtta yaptığınız değişikliği tabloya kaydetebilirsiniz. Bunu Kayıtlar menüsünden "Kaydı kaydet" maddesini seçerek de yapabilirsiniz.
Bir formda görüntülenen kaydı silmek de mümkündür. Bunun için araç çubuğundan Kayıt Sil simgesini tıklayabilirsiniz. Aynı işlem Düzen menüsünden Kayıt Sil maddesini seçerek de yapılabilir. Kayıt silme işlemi geri alınmaz. Bir formda kayıt silmeye çalıştığınız sırada bu işlem veritabanınında bilgi tutarlılığa açısından başka tablolarda ve sorgularda silme gerektirecekse, Access 2000 sizden onay isteyecektir.
Tablo görünümünde yapabildiğiniz bütün sıralama ve süzme işlemleri form görünümünde de yapılabilir.
Formun birinci görevi veri girmeyi kolaylaştırmak olduğu halde, bir kaydı içeren formu, yazdırabilirsiniz. Bunun için klavyede Ctrl tuşunu tutarken P tuşuna basmak veya Dosya menüsünden Yazdır maddesini seçmek yeter. Formun kağıt üzerinde nasıl görüneceğini Dosya menüsünde Baskı Önizleme maddesini seçerek, inceleyebilirsiniz.
<B
Access'te yeni bir form oluşturmak için çeşitli yollar vardır. Bunlardan biri, Veritabanı penceresinde Nesneler listesinden Formlar'ı tıklamak ve açılacak Form nesneleri penceresinde ya tasarım görünümünde ya da Sihirbazı kullanarak form oluşturma yöntemini seçmektir. Form nesneleri penceresinin araç çubuğunda Yeni simgesini tıklayarak daha çok seçenek bulunan Yeni Form oluşturma aracını açabilirsiniz.
Bu seçeneklerden Tasarım Görünümü, seçeceğiniz bir tabloya dayanan ve sıfırdan form oluşturmanızı sağlayacak aracı çalıştırır. Form Sihirbazı ise, sizden form için gerekli seçmeleri yapmanızı ister ve formu kendisi tasarlar. Üç ayrı otomatik form oluşturma aracı ile Grafik Sihirbazı ve Excel-vari özet tablo oluşturma aracını da Yeni Form kutusunda bulacaksınız. Access 2000'de tasarım görünümünde form oluşturmaya başlamadan önce, otomatik bir form oluşturup, bunu tasarım görünümünde açmak, form yapımı için daha eğitici olur. Bir tablo açıkken otomatik form oluşturun ve bu formu kapatın; Access onay istediğinde yeni form olarak kaydetmesine izin verin. Sonra Veritabanı penceresinde Formlar nesnesini seçin ve biraz önce kaydettiğiniz yeni formu seçip, araç çubuğundan Tasarla simgesini tıklayın. Access, formu tasarım görünümünde açarken yanına bir de Araç kutusu açacaktır.
Tasarım görünümündeki formun en belirgin özelliği zeminin kılavuz çizgilerle kaplı olmasıdır; formda yeralacak nesnelerin kılavuz çizgilerine yaslanması, nesnelerin görsel olarak düzgün ve hizalı görünmesini sağlar. Araç kutusundaki Nesne seçici (ok biçiminde) ile formdaki nesneleri seçer, ve Mouse düğmesini basılı tutarak,. form üzerinde yeni yere taşıyabilirsiniz. Denetim Sihirbazı denen işaretçiyi seçer ve forma yerleştirdiğiniz bir nesneyi ve Araç Kutusu'ndaki bir nesne simgesini tıkladıktan sonra formu tıklarsanız, bu nesnenin yapılandırılmasında size yardımcı olacak bir dizi diyalog kutusu açılır. Sihirbaz, seçtiğiniz denetim ögesinin özelliklerini belirlemek için sizden ve formun dayalı olduğu tablodan bilgiler derleyecektir.
Bir formda yer alabilecek denetim ögeleri, Araç Kutusu'nda sıralanmış bulunuyor. Bunları kısaca ele alalım:
Etiket Formdaki bir veri alanını niteleyen başlık olabilir; veya formu kullanarak veritabanına veri girecek olan kullanıcıya yolgösteren yardım metinleri içerebilir.
Metin kutusu Bu formun bağlı olduğu tablo veya tablolara veri girme noktalarıdır. Metin kutusunun özellikler penceresini açarak, bu kutuya girilecek bilgilerin veritabanında hangi tabloda hangi alana kayıt olarak işleneceğini belirlersiniz.
Seçenek grubu Formunuzda içinden seçme yapabileceğiniz ve bir alana bir değer atayan seçenekler içerir. Siz seçeneklerden hangisini seçerseniz, o seçeneğe vermiş olduğunuz değer tayin ettiğiniz bir alana yazılır.
Seçenek düğmesi Genellikle "kadın/erkek" gibi bir seçeneğin seçilmesini sağlar; seçeneğin değeri tayin ettiğiniz alana yazılır.
Değiştirme düğmesi Formda basılmış veya basılmamış düğme görünümleri arasında gider gelir ve tıklandığında içerdiği değeri ait olduğu alana yazdırır.
Onay kutusu İçerdiği değeri içine işaretü konduğunda ait olduğu alana yazdıran bir denetimdir.
Açılan kutu Ya oluştururken sizin vereceğiniz sabit değerleri, ya da bir tablo veya sorgunun oluşturduğu değerleri içerir ve formu dolduran kişi tarafından seçilen değer, ait olduğu alanr yazılır.
Liste kutusu İçindeki değerleri liste halinde gösterir; kullanıcının işaretlediği değer ait olduğu alana yazılır.
Komut düğmesi Access'in kullanıcıya sunduğu herhangi bir komutu yerine getirebilecek, düğme şeklindeki simge. Örneğin bir formu kaydetmek veya silmek için kullanılabilir.
Resim Formunuza işlevsel veya süsleme amacıyla resim koymanız için alan oluşturur.
İlişkisiz OLE Nesnesi Windows OLE-uyumlu herhangi bir programın dosyasını görüntülemenizi sağlayan pencere açar. Burada görüntelenecek başka program dosyasının veritabanınızla bir ilişkisi yoktur; form yoluyla bir kayıttan diğerine gidildiğinde bu nesre değişmez.
İlişkili OLE Nesnesi Windows OLE-uyumlu herhangi bir programın dosyasını görüntülemenizi sağlayan pencere açar. Burada görüntelenecek başka program dosyasının veritabanınızla ilişkisi kurulmuştur; bu alandaki nesne kayıttan kayıda gidildiğinde değişir.
Sayfa sonu Bir sayfadan fazla form oluşturmak istediğiniz zaman, formun kesilmesi ve yeni bir form sayfasının başlamasını sağlar. Sekme denetimi Windows'un sekmeli denetim ve diyalog kutuları gibi formlar yapmanızı sağlar. Sekmenin açtığı alana diğer form ögelerini yerleştirebilirsiniz.
Alt form Bir form yoluyla kayıtlarızda değişiklik yaparken, bağlı bir başka bir tablonun denetimini sağlayan ikinci bir form açılmasını sağlar. Böylece aynı anda bağlı tabloda da değişiklik yapabilirsiniz.
Çizgi ve diktörgen Formlarınızı kullanıl kolaylığı sağlamak amacıyla mantıksal gruplara ayırmasını sağlayan düz çizgi ve dikdörtgen çizimleri sağlar.
Yeni bir form tasarımına başladığınızda, araç kutusundaki denetim araçlarını formunuza yerleştirmiş olmanız, formda yapacağınız değişikliklerin herhangi bir tabloya işleneceği anlamına gelmez. Formun kayıt yapabilmesi için denetimlerin, mutlaka bir tablonun veya sorgunun alanlarına bağlanması gerekir. (Bağlı olmayan denetimler de olabilir. Onlara birazdan değineceğiz.) Form tasarımı sırasında Görünüm menüsünden alan listesi maddesini seçerseniz, formu oluşturmaya başladığınız sırada seçtiğiniz tablodaki bütün alanların listesini görebilirsiniz. Bu listedeki bir alanı Mouse işaretçisiyle tutarak, inşa halindeki formun üzerine bırakarak, kolayca bağlı denetimler elde etmek mümkündür. Bir diğer deetimle alan bağlama yolu ise denetimin Özellikler kutusunda Denetim Kaynağı satırına tablo ve alan adı yazmaktır.
Denetim ögelerinin özellikler kutusu, denetim sağ tıklanarak ve açılacak menüden Özellikler maddesi seçilerek görüntülenebilir. Ayrıca Form tasarımı penceresi açıkken Görünüm menüsünden Özellikler maddesini de seçebilirsiniz. Özellikler kutusu, seçili denetimin alabileceği bütün özellikleri içerir. Örneğin bir metin kutusunun tam 60 ayrı özelliği vardır. Özellikler, kutunun üzerindeki sekmelerle gruplara ayrılmıştır. Veri sekmesinde, denetim unsuru ile tablonun alanları arasında veri-bağı kurmanızı sağlayan özellikler vardır. Bu özelliklere Tümü sekmesinde de ulaşabilirsiniz. Veri ile bağlanabilecek bir denetimin Özellikler kutusununda denetim kaynağı satırının sağında iki seçme simgesi vardır.
Bunlardan aşağı oku tıkladığınızda, formu oluşturmaya başladığınızda, bir tablo seçtiyseniz o tablonun alanlarını göreceksiniz. Form oluşturmaya başlarken bir tablo seçmediyseniz, bu oku tıkladığınızda karşınıza boş bir satır gelir. Özellikler kutusununda denetim kaynağı satırının sağındaki ikinci seçme simgesi ise yanyana üç nokta şeklinde "deyim oluşturucusu" simgesidir. Bu simgeyi tıkladığınızda Deyim Oluşturucusu diyalog kutusu açılır.
Bu diyalog kutusunda, üstte deyim oluşturmaya ayrılan bol alan ile altta yanyana ve birbirine bağımlı üç pencere göreceksiniz: en solda veritabanında mevcut bütün tablolar, sorgular, formlar, raporlar, Access'in kullanılmaya hazır ve 16 grup halinde ayrılmış (aritmetik ortalamadan, tanjant hesaplamaya, tarih çevirmekten, sayı saymaya kadar) 188 işlevi, sabit değerler (boş, doğru, yanlış gibi), 20 adet matematik ve mantık işlem işaretleri (işleçleri, operatörleri), ve ortak değerler (sayfa numarası, toplam sayfa sayısı, o andaki tarih veya tarih/saat, ve o andaki kullanıcı adı) yer alır. Bu pencerede seçtiğiniz grubun alt grupları ortadakinde, ortada seçtiğiiz alt grubun içindekiler ise en sağdakinde görüntülenir. Bir tablonun bir alanını, denetim unsuruna veri kaynağı yapmak için, en soldaki pencerede Tablolar satırını iki kere tıklayın; ortada veritabanının bütün tabloları listelendiğinde arzu ettiğiniz tabloyu iki kere tıklayın. En sağda tablonun bütün alanları listelenecektir. Arzu ettiğiniz alanı iki kere tıkladığınızda, alanın adı, tablonun adıyla birlikte, üstteki Deyim oluşturma alanına yazılacaktır. Tamam'ı tıkladığınızda bu "deyim," denetimin Özellikler listesinde Denetim Kaynağı olarak gösterilmiş olur. Bu andan sonra formunuzun bu alanına yazacağınız veri, seçtiğiniz tabloda seçtiğiniz alana kaydedilir.
Form oluşturmaya başlarken bir tablo seçmiş olsanız bile, bir forma birden fazla tabloya bilgi kaydetme görevi verebilirsiniz. Bir form, veritabanı içindeki bütün tablolara bilgi kaydedebilir.
Böylece Access'te veritabanı oluşturma işinin birinci aşaması olan tablo tasarımını ve veri girmeyi, veriişlemin ilk adımı olan sıralama ve süzmeyi ve veritabanımızla daha kolay çalışma aracı olan formları tasarlamayı öğrendik. Şimdi, veri-işlemin gerektirdiği diğer işlere geçebiliriz. Bu işlerin başında tablolarımız arasında ilişki kurmak, Anahtarları belirlemek ve endeksleri (dizinleri) oluşturmak geliyor.
İster insanlar arasında, ister tablolar arasında olsun, ilişki zor şeydir; itina ve dikkat, önceden planlama ve sihirli bir anahtar ister! İnsanlararası ilişkide sihirli anahtar nedir sorusunu Access 2000'e ayrılmış bu kitapta ele alamayız. (Zaten bu konu bu kadar bir kitapçığın kapsamını aşar.) Fakat hemen belirtebiliriz ki, Access'te başarılı bir veri-işlemin sihirli anahtarı Birincil Anahtar'dır: tablolar arasındaki ilişkiyi bu Anahtar ile kurarız, ve göreceğimiz gibi, daha bir çok kapıyı bu anahtarla açarız.
İkinci bölümdeki alıştırmayı yaptıysanız, oluşturduğunuz her tablonun tasarım görünümünü kapatırken, Access 2000'nin bu tabloda bir Birincil Anahtar tayin edilmediğini vurgulayarak sizden ısrarla bir alanı Birincil Anahtar olarak belirleminizi istediğini görmüş olmalısınız. Neden? Çünkü birincil anahtar her tabloya, daha sonra bir başka tablo ile ilişkilendirmek istediğinizde bu ilişkide özgün kişiliğini verecektir. Birincil anahtar olarak belirlenen alandaki bilgilerin benzersiz olması gerekir. Access sizi buna zorlamaz, ama birincil anahtar alanındaki bilgileriniz her kayıt için benzersiz değilse, neden birincil anahtar olarak atamış olabilirsiniz? Birincil anahtar, bir kaydı, bir başka tablodaki bir kayıtla birleştirmekte kullanacağımız anahtardır. Birincil anahtarın diğer işlev ve yararlarına kısaca değindikten sonra kayıt birleştirmedeki rolüne döneceğiz.
Her tablonun bir, ama sadece bir, Birincil Anahtarı olabilir. Access 2000, her tablonun birincil anahtarını otomatik olarak endeksler (ve bu sayede veritabanı daha hızlı çalışır). Tablonuzda siz bir alanı Birincil Anahtar olarak atamadıysanız, Access 2000 bir birincil anahtar alanı oluşturmak ister; bunu onayladığınızda bir otomatik sayı alanı açar; tablonuzda zaten birinci alanda otomatik sayı türü bir veri varsa, Access 2000 bu alanı birincil anahtar olarak atar. Bu sebeple, iyi bir tablo tasarımı ilerde kullanmayacak bile olsanız, birinci alanı otomatik sayı olarak belirlemeyi gerektirir.
Birincil anahtar, hemen hemen daima sadece bir alandan oluşur. Fakat Access 2000, ancak çok pahalı veritabanı Server programlarının yapabileceği bir imkana da sahiptir: veri-işlem işiniz birden fazla alandan oluşan Birincil anahtar kullanmanızı gerektiriyorsa, bunu yapabilirsiniz. Çok-alanlı Birincil Anahtar, ileri düzeyde veri-işlem ve sorgulama bilgisi gerektirir.
Her veri türü birincil anahtar olamaz: birincil anahtar olarak kullanamayacağınız veri türleri, Internet adres bağlantısı (köprü), OLE ve not türleridir. Buna göre, metin, sayı, tarih/saat, para birimi, Evet/Hayır, ve otomatik sayı alanları birincil anahtar olarak kullanılabilir. Tablolarınız, birincil anahtar alanına göre otomatik olarak sıralanır. (Eğer bir Evet/Hayır alanını birincil anahtar yapmaya kararlıysanız, tablonuzda en fazla iki kayıt olması gerekir. Neden?)
Birincil anahtarın tabaloda birinci alan olması gerekmez; herhangi bir alan birincil anahtar olabilir. Fakat kendinizi tabolalarınızda birincil anahtar arama zorluğundan kurtarmak için daima birinci alanı birincil anahtar yapacağınız veriye ayırmanız iyi bir alışkanlık olur.
"Tablomda hangi alanı birincil anahtar yapmalıyım?" sorusu kaçınılmaz olarak sorulacak sorudur. Bu sorunun bir cevabı olabilir: Benzersiz veri içeren alanlardan birini birincil anahtar yapın. Birincil anahtar seçiminde anahtar kelime, "benzersiz" kelimesidir! Seçeceğiniz alandaki veri, her kayıt için özgün olmalıdır; başka hiç bir kayıtta tekrar etmemelidir. Kişilerin adlarını, soyadlarını içeren alanlar özgün olamaz. Öğrenci numaraları, araç plaka numaraları da bir kaç yıl sonra tekrar başka öğrenciye veya araca verilebilir. Telefon numaraları bir ülke için özgün olabilir (her bölgenin kodu farklı olacağı ve aynı bölge kodunda benzer numara bulunmayacağı için), ama veritabanınızda örneğin bölge kodu aynı olan Istanbul ve New York kentlerindeki dostlarınızın telefon numaraları varsa, zor bir tesadüf bile olsa, aynı numara bulunabilir.
Birincil anahtar alanı belirlerken, tablonuzda özgün-benzersiz veri bulunan alan arayın. Bütün alanlarınızdaki verilerin tekrar etmesi ihtimali varsa, yeni bir alan açın ve içine otomatik sayı koyun.. Gerisini Access 2000 düşünsün!
Bir tabloda birincil anahtar alanı tayini son derece kolaydır. Tabaloyu tasarım görünümünde açın; birincil anahtar olarak atamak istediğiniz alanın adının bulunduğu kutuyu sağ-tıklayın ve açılacak menüde birinci madde olan Birincil Anahtar maddesini seçin. Bu alanın adının önündeki kutuda küçük bir anahtar simgesi belirecektir.
Birincil anahtarın veritabanı için önemini ortaya koyacak küçük bir deney yapalım ve sonra birincil anahtarın birincil görevi olan tablo ilişkilendirme konusuna dönelim.
Yukarıdaki alıştırmayı yaptıysanız Çocuklar tablosunu (veya herhangi bir alanı Birincil Anahtar olarak tayin edilmiş bir başka tabloyu) açın, ve yeni bir satırda birincil anahtar alanına mevcut değerlerden birini tekrar yazın. İşinizin bittiğini belirtmek üzere başka bir hücreyi tıklayın; Access 2000 hemen hata mesajı verecektir:
Birincil anahtar alanındaki verinin özgün olması gerekir; yoksa bu anahtar aslî görevini yapamaz.
Tablolar arasında ilişki kurmak suretiyle, veritabanı dosyamızı düz veritabanı olmaktan kurtardığımızı söylemiştik. Tablolar arası ilişki, Access 2000'in daha hızlı sorgu icrası yapmasını sağlar; veri-işlem işlerimiz daha verimli olur. Bu sayede verilerimizi güncelleştirirken, bütün tabloları elden geçirmek ve hatta yeniden girmek zorunda kalmayız; sadece güncelleştirilmesi gereken tabloya ek veya bu tabloda değişiklik yaparız.
Bir firma düşünelim: en az 200 firmadan hammadde alıyor ve en az 500 bayie mamül madde veriyor. Bu firmaların adreslerinden, alınan hammadde ve verilen mamül maddelerin özelliklerine kadar, diyelim ki 2 bin sütun dolduran verilerimizi tek tabloda topladığımızı varsayalım. Böyle bir tabloda, aldığımız mallara ilişkin bilgi sütunları, sattığımız mallara ilişkin satırlarda boş kalırken, sattığımız mallara ilişkin bilgi sütunları aldığımız mallara ilişkin satırlarda boş bırakılmak zorundadır. Bu hem gereksiz yere şişkin bir veritabanı dosyasına yol açar, hem de veri girişinde sayısız hatalara sebep olur. A firmasından aldığımız yeni bir mala ait yeni bir kayıt girerken, firmanın adından adresine, faks numarasından posta koduna kadar bütün bilgileri yeni satıra tekrar yazmak zorunda kalırız. Bu, yeni yazım hatalarına davetiye çıkartmak demektir. Tekrar eden bu bilgilerin dosya boyutuna bindireceği yükü düşünün!
Oysa elimizde bir firmalar tablosu, bir de mallar tablosu bulunsa; her bir malın hangi firmadan alındığı veya hangi firmaya verildiğini gösteren alana, firmalar tablosunun birincil anahtarından bağ kursak, hem tekrar-tekrar veri girişinin yol açacağı insanî hatalardan korunmuş oluruz (bu bilgileri girecek operatörlere vereceğiniz ücreti de unutmayın!), hem de işlenmesi kolay nisbeten küçük veritabanı dosyasına sahip oluruz.
Verilerimizi tek tabloda toplamanın sakıncalarını anladık. Ve diyelim ki elimizde böyle, beş veya altı tabloya bölünmüş bir veritabanı var. Şimdi, son 3 ay içinde mal aldığımız firmaların bir dökümünü çıkartmak istiyoruz. Beş-altı ayrı tabloyu mu kağıda dökeceğiz? Bu ayrı ayrı tablolara bölünmüş bilgileri nasıl birleştireceğiz? Başka bir deyişle, ayrı tablolara böldüğümüz verileri işare yarar, anlamlı diziler haline getirmek için nasıl birleştirebiliriz? Bunu, tabloları herbirinin diğeri için anlamlı tek özgün alanından, yani Birincil Anahtarlarından birleştirerek yapabiliriz. Veritabanınızı bu birden fazla tabloya bölerek ve herbirine özgün birincil anahtar alanları koyarak tasarlasanız bile, aynı veritabanı içinde yer alıyorlar diye tablolarınız kendiliklerinden ilişki kurmazlar. Bunu bizim sağlamamız gerekir. Kendi tablolarımızda kendi ilişkilerimizi oluşturmadan önce, Access 2000'nin bunu nasıl sağladığını görmek, ilişki konusunda bize daha iyi fikir verecektir. Bunun için Access 2000'i çalıştırın; Yeni veritabanı oluşturmak üzere açılan pencerede Veritabanları sekmesini seçin ve Stok Yönetimi şablonunu işaretleyin. Yeni boş stok yönetimi veritabanınız oluşturulduğunda, eğer Access penceresi içinde küçültülmüş durumda ise veritabanı penceresini büyütün; Switchboard adı verilen veritabanını kullanmanız için oluşturulan grafik arayüzü kapatın. Stok Yönetimi1 adlı yeni stok yönetimi veritabanınızın nesnelerinden Tablolar'ı seçtiğinizde, yedi adet aslî tablo oluşturulduğunu göreceksiniz: Ürünler, stok hareketleri, kategoriler, çalışanlar, sipariş formları, üreticiler ve nakliye yöntemleri. Stok yönetimi konusu ile hiç ilginiz yoksa bile, sadece ilişki konusunu kavramak için, bu tabloların bir firmanın elindeki stokları takip için gerekli ve yeterli olduğunu varsayalım.
Şimdi, Araçlar menüsünden İlişkiler maddesini seçin. Karşınıza şuna benzeyen bir pencere açılacaktır:
Açılan penceredeki kutular arasındaki çizgiler buradaki görüntüye benzemiyorsa, kutuları Mouse işaretçisiyle başlıklarından tutarak sürükleyebilir ve konumlarını buradakine benzer şekle getirebilirsiniz. Bu pencerede, kutuların başlığının tablo adlarını içerdiğine dikkat edin. Kutuların içindeki maddeler ise tablolardaki alanların adlarıdır. Her tablonun kutusunda bir alan adının koyu yazıldığını görüyor musunuz? Bu, o tablonun birincil anahtarı olan alandır. Bazı alanlardan çıkan çizgilerin diğer bir kutudaki alana bağlandığını görüyorsunuz. Dikkat ederseniz, aralarında çizgi bulunan alan adlarının aynı olduğunu da göreceksiniz. Bu çizgilere ilişki denir; tabloların birbirleri ile hangi alanlarından ilişkide olduklarını gösterir. Şemaya veya Access İlişkiler Penceresi'ne tekrar bakarsanız, ilişki çizgilerinin bazılarının sol ucunda "1," sağ ucunda sonsuz işaretinin bulunduğunu, bazı ilişkilerde işaretlerin yer değiştirdiğini ve diğerlerinde ise çizgilerin işaretsiz olduğunu göreceksiniz. Bu işaretler kurulan bağın niteliğini gösterir; bağın niteliği ise daha sonra iki tablo arasında yapılabilecek birleştirmede hangi kayıtların hangi kayıtlarla birleştirileceği veya Access'in deyimiyle eşleştirileceğini tayin eder. Bu tanımla biraz şifreli görünüyorsa da Access'te kurabileceğimiz ilişkilerin niteliklerini ele alınca manzara aydınlığa çıkacaktır. Tablolarınızın arasında üç tür ilişki olabilir:
Bire bir ilişki: İlişkilendirdiğiniz iki tablodan birincisi ile ikincisi arasında sadece bir kayıt eşleşebilir. Bu tür ilişkilendirmeyi tabalolarımızda sık kullanmadığımızı göreceksiniz; çünkü genellikle böyle tek gerçekli tablo yapmayız.
Bir-çok ilişkisi: Birbirine bağladığımız iki tablodan birindeki bir kayıt diğer tabloda birden fazla kayıtla eşleşebilir. İkinci bölümdeki örneğimizi hatırlarsanız: bir ailenin birden fazla çocuğu olabilir; fakat her çocuğun sadece bir ailesi olabilir. Dostlarnımızın çocuklarıyla birlikte bir tablosunu edinmek istersek, üç çocuklu dostlarımızın adı yeni tabloya üç ayrı satırda yazılacak, iki çocuklu dostlarımızın adları iki, tek çocuklu dostlarımızın adları ise bir kere girecektir. Neden? Çünkü aile bağı (Aile Sıra No alanı), Çocuklar tablosunda çok kayda işaret ediyor.
Çok-çok ilişkisi: İlişkilendirdiğimiz tablolardan birincisinde birden fazla alan, ikincisinde birden fazla kayda (ve tabiî ikincisindeki birden fazla alan birinci tablodaki birden fazla kayda) işaret ediyorsa, bu kez tablolar arasında çok-çok ilişkisi var demektir. Örnek tablomuzda böyle bir durum yok, ama bir sipariş veritabanı düşünün: her bir sipariş emrinde birden fazla mal sipariş ediliyor olabilir; mal tablosunda ise her bir mal birden fazla sipariş tablosunda görünüyor olabilir. Böyle bir ilişkinin sonucu ortaya çıkacak üçüncü tabloda hem hem her bir sipariş, hem de her bir mal birden fazla satırda görünecektir.
Şimdi bu bilgilerin ışığında biraz önce oluşturduğunuz Stok Yönetimi veritabanının ilişkiler penceresine bakalım. Şimdi bu veritabanındaki dosyaları kullanarak, firmamızın verdiği siparişlerle ilgili ve siparişi veren personele göre sipariş miktarlarını gösteren yeni bir tablo yapabilir miyiz? Yapabiliriz. Siparişi veren Personel, hangi tabloda hangi alandaki bilgi ile bulunacak? Çalışanlar tablosundaki ÇalışanNo alanındaki veri ile. Peki, bu alandaki kayıtlar, hangi tablodaki hangi alanda bulunan kayıtlarla eşleştirilecek? Sipariş formları tablosundaki ÇalışanNo alanındaki kayıtla. Yani Çalışanlar tablosundaki ÇalışanNo alanındaki veri Ahmet Çalışkan arkadaşımıza ait 812 ise ve bu değer, Sipariş formları tablosundaki kayıtlarda ÇalışanNo alanındaki değerlerle eşleşiyorsa, bu kayıt yeni tablomuza alınacak; sonra sırasıyla diğer değerler taranacak, eşleşenler yeni tabloya dahil edilecektir. ("Yeni tablo nerede ve nasıl oluşacak?" sorusunu şimdilik sormayın; bunu Sorgu ile yapacağız; ve daha sonra ele alacağız.)
Çalışanlar tablosundaki ÇalışanNo alanında Mehmet Tembeloğlu arkadaşızı belirten 813 şeklindeki veri, Sipariş formları tablosundaki kayıtlarda ÇalışanNo alanındaki hiç bir veri ile eşleşmiyorsa ne olacak? Yeni tabloda 813 şeklindeki ÇalışanNo'yu içeren bir kayıt olmayacaktır. Ve muhtemelen Mehmet Tembeloğlu, neden hiç sipariş vermediğini izah etmek zorunda kalacaktır!
Tablolarımız arasında ilişki oluşturma işini kendimiz yapmak istersek, yine biraz önce açtığımız Araçlar menüsünden İlişkiler maddesini geçerek açtığımız pencereyi açmamız gerekir. İkinci bölümdeki Adres Defteri alıştırmasını yaptıysanız, şimdi bu veritabanı dosyasını açabilirsiniz. Bu alıştırmayı yapmadı iseniz, şimdi ikinci bölüme dönüp bu dosyayı oluşturabilirsiniz! Veritabanı açıldığında veya tabloları oluşturma işini bitirdiğinizde Araçlar menüsünden İlişkiler maddesini seçin. Karşınıza şuna benzeyen bir görünüm gelecektir:
Biz kurmadığımız halde iki tablomuz arasındaki bu ilişki, Çocuklar tablosunu oluştururken, Aile Sıra No alanının doldurulması için Aile tablosunun aynı adlı alanına girilmiş kayıtlara bakılmasını istemiş olmamızdan kaynaklanıyor. Burada gördüğünüz çizgiyi ortasından sağ tıklayın ve açılan menüden Sil maddesini seçin; Access silme işlemini
Sayfa 1 ... 7 8 9 10