Memik Yanık

Yeni Başlayanlar İçin Microsoft Access - 3

Bu yazıda Access hakkında verilen bilgileri ilk okumada anlayabilmeniz için Access üzerinde daha önce yayınlamış olduğumuz iki yazıyı okumuş olmanız önerilir. Daha önce yayınlanan iki yazıda örnek olması için önce "Cari" adında bir veri tabanı dosyası hazırlamıştık. Ardından Cari Kartlar ve Cari İşlemler adında iki tablo hazırlamış bu veri tabanı dosyasına dahil etmiştik.

Kullanmak istediğimiz tabloları hazırlayıp veri tabanı dosyasına dahil ettikten sonra bilgi giriş formu ve bir sorgu hazırlamıştık. Bu ayki yazıda ise size Raporların nasıl hazırlandığı ve Access’te makroların nasıl kullanıldığı konusunda bilgi vereceğiz.

Rapor Hazırlamak
Yeni bir rapor hazırlamak için ilk yapılması gereken işlem veri tabanı dosyası penceresinde Raporlar sekmesini seçili duruma getirmektir. Aşağıda verilen ekran görüntüsünü aldığımız sırada üzerinde çalıştığımız veri tabanı dosyasına dahil edilmiş olan rapor yoktu.

Raporlar sekmesi seçili durumda iken Yeni düğmesine tıklarsanız ekrana rapor hazırlama tekniğinin seçildiği Yeni Rapor diyalog kutusu gelir. Aşağıda verilen ekran görüntüsüne göre Access rapor hazırlama konusunda size çok sayıda teknik sunmaktadır. Rapor hazırlamada kullanılmak üzere Access ile birlikte verilen Otomatik Rapor sihirbazı ile rapor hazırlamak çok kolaydır.

Şimdi örnek olması için daha önce hazırlayıp kayıt girdiğimiz Cari İşlemler tablosunu temel alan bir raporu Otomatik Rapor:Sekmeli adındaki sihirbazdan yararlanarak hazırlayacağız. Bu amaçla Yeni Rapor diyalog kutusunda rapora temel oluşturacak tabloyu ve Otomatik Rapor sihirbazını seçtik. Otomatik Rapor sihirbazının Sütunlu ve Sekmeli adında iki ayrı tipi bulunmaktadır. Yeni Rapor diyalog kutusunda tablo ve Otomatik Rapor sihirbazını seçip Tamam düğmesinde tıklama yaparsanız Access sizden herhangi bir katkı istemeden kısa sürede raporu hazırlayıp ekrana getirir.

Otomatik Rapor sihirbazı ile bu şekilde hazırladığınız raporu ileride tekrar kullanmak istiyorsanız, bu raporu veri tabanı dosyasına kaydetmeniz gerekir. Bunun için Dosya menüsündeki Kaydet komutunu kullanabilirsiniz. Otomatik Rapor sihirbazı ile rapor hazırlamak fazla zaman almadığı için bu raporu kaydetmeyebilirsiniz. Yukarıda verilen ekran görüntüsünü aldığımız zaman, rapor zoom yapıldığı için aynı anda bir rapor sayfasının tümü Rapor penceresinde görülmemektedir. Eğer raporun tam bir sayfasını aynı anda ekranda görmek istiyorsanız rapor penceresi içinde tek tıklama yapmanız yeterlidir. Rapor penceresinin en alt satırında bulunan düğmeler ile raporun sayfaları arasında dolaşabilirsiniz. Otomatik Rapor sihirbazı ile bu şekilde hazırladığınız raporu ileride tekrar kullanmak istiyorsanız raporu veri tabanı dosyasına kaydetmeniz gerekir. Bunun için Dosya menüsündeki Kaydet komutunu kullanabilirsiniz. Üzerinde çalıştığınız veri tabanı dosyasına ait pencerede raporlar listenirken Dosya menüsünden Yazdır komutunu vererek istediğiniz raporu yazdı-rabilirsiniz. Print komutunu vermeden önce yazdırmak istediğiniz raporu seçili duruma getirmeniz gerekir. Dosya menüsünden Yazdır komutu verildiği zaman ekrana Yazdır diyalog kutusu gelmektedir.

Makro Hazırlamak

Diğer programlarda olduğu gibi Access makro kullanımını desteklemektedir. Ancak Access’te makro kullanımı sürekli tekrarlanan işlem-leri kolaylaştırmaktan çok daha işlevseldir. Ayrıca Access’i bir program geliştirme aracı olarak kullanmak mümkündür. Makrolar sayesinde basit işlemler için Access’in program geliştirme özelliklerine gerek duymayabilirsiniz. Makrolar veri tabanı dosyalarına özgü olduğu için hangi dosya için makro hazırlamak istiyorsanız önce o veri tabanı dosyasını açmanız gerekir. Ardından açtığınız veri tabanı dosyasına ait pencerede Makrolar sekmesinde tıklama yaparak mevcut makroların pencere içinde listelenmesini sağlamalısınız. Aşağıda verilen ekran görüntüsünü aldığımız sırada üzerinde çalıştığımız veri tabanı dosyası için hazırlamış olduğumuz herhangi bir makro yoktu.

Yeni bir makro hazırlamak üzere Yeni düğmesinde tıklama yaparsanız, makro hazırlanan bir pencere ekrana gelir. Makro hazırlanan pencere aktif pencere durumunda iken, daha önceden engelleme yapılmadıysa, Access pence-resine otomatik olarak Makro adındaki araç çubuğu getirilmektedir. Aşağıda verilen ekran görüntüsünü yeni bir makro hazırlamak üzere Yeni düğmesinde tıklama yaptıktan hemen sonra aldık.

Verilen ekran görüntüsünden tespit edebileceğiniz gibi pencerenin üst kısmında Eylem ve Açıklama adında iki sütun bulunmaktadır. Makrolar yardımı ile yapılmak istenen işlemler Makro Eylemleri aracılığı ile yapılmaktadır. Access dahilinde kullanıma sunulan çok sayıda eylem vardır. Makro hazırlama ile ilgili olarak ilk yapılması gereken işlem, yapılmak istenen işleme uygun bir Eylem seçmektir. Bu nedenle Yeni düğmesinde tıklama yapı-lıp makroların hazırlandığı pencere ekrana geldiğinde ekleme noktası Eylem sütunundaki ilk hücrede hazır olarak beklemektedir. Ekleme noktası Eylem sütununda bulunan hücrelerin üzerinde iken hücreye otomatik olarak bir liste kutusu konulmaktadır. Bu liste kutusu açılarak Access dahilinde kullanıma sunulan bütün eylemler görülebilir. Aşağıda verilen ekran görüntüsünü bu liste kutusunu açtıktan sonra aldık.

Açıklama sütununa ise seçilen makro eylemi veya yapılacak işlem hakkında isteğe bağlı olarak açıklayıcı bilgi yazılmaktadır. Şimdi örnek olması için basit bir makro hazırlayacağız. Bu makro çalıştırıldığında üzerinde çalıştığımız Cari adlı veri tabanı dosyasındaki Cari Kartlar tablosu açılacak. Veri tabanı dosyasından tablo açmada kullanılan eylemin adı TabloAç. Bu nedenle eylem listesinden TabloAç eylemini seçiyoruz.

Daha önce herhangi bir programlama dili ile program yazmış olan-ların bileceği gibi her deyim veya fonksiyon yaptığı işlemlere bağlı olarak dışarıdan değişik sayıda parametre veya bilgi almaktadır. Aynı durum Access’in makro eylemleri için de geçerlidir. Bu nedenle seçilen eyleme bağlı olarak, eylemin alabildiği her parametre için Makro penceresinin alt kısmında birer metin kutusu hazırlanmaktadır. TabloAç eylemi dışarıdan Tablo Adı, Görünüm ve Veri Kipi adında 3 parametre almaktadır. İlk parametrede açılacak tablonun adı belirlenmektedir. Ekleme noktası F6 tuşu veya fare ile Tablo Adı metin kutusuna götürüldüğünde metin kutusunun sonuna bir liste kutusu eklenmektedir. Eğer TabloAç eylemi ile açacağınız tablonun adını ezbere bilmiyorsanız bu liste kutusunu açıp istediğiniz tabloyu seçe-bilirsiniz. Aşağıda verilen ekran görüntüsünü Tablo Adı liste kutusunu açtık-tan sonra aldık. Liste kutusunda üzerinde çalışılan veri tabanı dosya-sında bulunan bütün tablolar listelenmektedir.

Bu liste kutusundan açılacak tablo seçildikten sonra sıra Görünüm paramet-resine aktarılacak değere gelir. Görünüm parametresi Veri Sayfası, Tasarım veya Baskı Önizleme değerlerinden birini alabilmektedir. Eğer Veri Sayfası seçilirse, tablo açılır açılmaz tablodaki kayıtlar alıştığımız şekilde ekrana getirilir. Tabloyu açmadaki amacınız tablonun yapısında deği-şiklik yapmaksa, bu kez Görünüm parametresine Tasarım değeri aktarılır. Baskı Önizleme ile tablonun yazdırılması halinde kağıt üzerinde nasıl duracağı göste-rilmektedir.

TabloAç eyleminin aldığı son parametre olan Veri Kipi ile tablo üzerinde ne gibi işlemlerin yapılacağı konusunda seçim yapılmaktadır. Eğer tabloyu yalnızca incelemek üzere açacaksanız Salt Okunur, tablonun kayıtlarında veya yapısında değişiklik yapacaksanız Düzenle ve tabloya yeni kayıtlar yazacaksanız Ekle modunu seçebilirsiniz.

Bu şekilde TabloAç eyleminin gerek duyduğu bütün bilgiler verildikten sonra üzerinde çalıştığımız veri tabanı dosyasındaki Cari Kartlar tablosunu açacak olan makronun hazırlanması işlemi tamamlanmış oldu. Hazırlanan bu makroyu daha sonradan kullanabilmek için makronun veri tabanı dosyasına kaydedilmesi gerekir. Hazırladığınız makroyu kaydetmek için Dosya menüsünden Kaydet komutunu verirseniz makroya ad verilen Farklı Kaydet diyalog kutusu ekrana gelir. Örnek olması için hazırladığımız bu makroya Tablo Aç adını verdik.

Makroyu kaydettikten sonra makro penceresini kapatabilirsiniz. Makro penceresini kapatıp tekrar veri tabanı dosyasına ait pencereyi aktif pencere yaptığınızda hazırladığınız makroyu pencerede görebilirsiniz.

Veri tabanı dosyası penceresi içinde mevcut makrolardan biri seçili durumda iken Aç düğmesi yerini Çalıştır düğmesine bırakır. Bu sırada Çalıştır düğmesine tıklarsanız seçili durumdaki makro işletilir. Şimdi bu makroda bir değişiklik yapacağız. Bu değişikliğe göre TabloAç eylemi ile tabloyu açmadan önce ekrana bir diyalog kutusu içinde belirtilen tablonun açılacağı konusunda ekrana mesaj vereceğiz. Pratik değeri olmayan bu değişikliği sadece örnek teşkil etmesi için veriyoruz. Ekrana mesaj vermek için İletiKutusu eylemi kullanılmaktadır. Daha önce hazırlanıp veri tabanı dosyasına dahil edilen bir makroda değişiklik yapmak için, değiştirilecek makro seçili duruma getirildikten sonra Tasarla düğmesine tıklanır. Aşağıda verilen ekran görüntüsünü Tasarla düğmesine tıkladıktan hemen sonra aldık.

TabloAç eylemi ile belirtilen tabloyu açmadan önce ekrana İletiKutusu eylemi ile mesaj vermek istediğim için, makroya ait penceredeki Eylem sütununda ilk önce İletiKutusu eylemi olmalıdır. TabloAç eyleminden önce İletiKutusu eylemini yazabilmek veya TabloAç eylemini bir sonraki satıra atmak için Ekle menüsündeki Satır komutun-dan yararlanılır.

Ekle menüsünden Satır komutunun verildiği sırada ekleme noktasının üzerinde bulunduğu satırın altındaki bütün satırlar bir satır aşağıya kaydırılır. Aşağıda verilen ekran görüntüsünü Ekle menüsünden Satır komutunu verdikten hemen sonra aldık.

Ekle menüsündeki Satır komutu ile hazırlanan bu boş satıra istenen Access eylemi yazılabi-lir. Bu örnekte TabloAç eyleminden önce ekrana İletiKutusu eylemi ile mesaj vermek istediğimiz için bu boş satıra İletiKutusu eylemini yazdık. Eylemin adını doğrudan yazmak yerine bütün eylemlerin listelendiği liste kutusunu açıp seçim yapabilirsiniz. İletiKutusu eylemin adının yazımı tamamlanınca, makro penceresinin alt kısmında İletiKutusu eylemi ile verilecek mesajın ve ekrana getirilecek diyalog kutusu başlığının belirlendiği 4 metin kutusu hazırlanır.

İletiKutusu eylemi ile diyalog kutusu aracılığı ile ekrana getirilmek istenen mesaj İleti parametresine ait metin kutusuna yazılır. Aşağıda verilen ekran görüntü-sünü İleti metin kutusuna İletiKutusu eylemi ile ekrana getirilecek diyalog kutusunun kapatılmasından hemen sonra işletilecek TabloAç eyleminin işlevi ile ilgili bir mesaj yazdıktan sonra aldık.

İleti parametresine ait metin kutusuna mesajı yazıp makroyu son şekli ile veri tabanı dosyasına kaydedip çalıştırınca, aşağıdaki gibi bir diyalog kutusu ekrana geldi.

Eğer İletiKutusu eylemi ile ekrana getirdiğiniz mesajdan önce ünlem işaretinin olmasını istiyorsanız, makro penceresinin alt kısmında İletiKutusu eylemine ait Tür parametresine Uyarı! değerini aktarmalısınız. Aşağıda verilen ekran görüntüsünden tespit edebileceğiniz gibi Type parametresine aktarılabilecek toplam 5 değer var.

Tablo Aç makrosunda kullanılan İletiKutusu eylemin Tür parametresine Uyarı! değeri aktarılıp makro en sonra hali ile çalıştırıldığında ekrana Cari Kartlar tablosunun açılacağını bildiren aşağıdaki gibi bir diyalog kutusu gelir.

Eğer İletiKutusu eyleminin Tür parametresine Bilgi değeri aktarılmış olunsaydı diyalog kutusu aşağıdaki gibi olurdu.

Verilen ekran görüntülerden tespit edebileceğiniz gibi Access varsayım olarak İletiKutusu eylemi ile ekrana getirilen diyalog kutularında "Microsoft Access" başlığını kullanmaktadır. Eğer İletiKutusu eylemi ile ekrana getirilen diyalog kutusuna farklı bir başlığın verilmesini istiyorsanız, İletiKutusu eyleminin Başlık parametresine ait metin kutusuna başlık olarak kullanılmak üzere istediğiniz bilgiyi girebilirsiniz.

Bu değişiklikten sonra Dosya Aç makrosu tekrar kaydedilip çalıştırılırsa ekrana gelecek diyalog kutusu aşağıdaki gibi olur.

Şimdi size Access kaynaklı bir diyalog kutu-sunun ekran görüntüsünü vereceğiz. Access bu diyalog kutu-sunu üzerinde çalışılan tablo, rapor veya sorgu kaydedilmeden kapatılmak istendiği zaman ekrana getirmektedir.

Bu diyalog kutusundaki Evet düğmesinde tıklandığında, tablonun son hali kaydedildikten sonra tablo kapatılmaktadır. Hayır düğmesinde tıklandığında ise tablonun son hali kaydedilmeden kapatılır. Ne var ki Access’in İletiKutusu eylemi ile ekrana getirilen diya-log kutusunda kullanıcıya seçim yapma şansı verilemiyor. İletiKutusu eylemi ekrana diyalog kutusu içinde mesaj vermekten öte bir işleve sahip değildir. Ancak Access’in MsgBox() adında hazır bir fonksiyonu bulunmaktadır. Şimdi yukarıda verdiğimiz ve İletiKutusu eyleminden başka yalnızca TabloAç eylemini içeren makroda değişiklik yapacağız. Bu değişiklikten sonra makro çalıştırıldığında, bir diyalog kutusu içinde kullanıcıya söz konusu tabloyu açmak isteyip etmediği sorulacak. Ayrıca diyalog kutusunda Evet ve Hayır adında iki düğme olacak. Kullanıcı Evet düğmesinde tıklama yaptığında belirtilen tablo, TabloAç eylemi ile açılacak, Hayır düğmesinde tıklama yapıldığında ise tablo açılmayacak. Başka bir deyişle TabloAç eylemi için MsgBox() fonksiyonu için bir koşul hazırlayacağız. MsgBox() fonksiyonu hakkında bilgi vermeden size makronun belirtilen şekilde değiştirilmiş halinin ekran görüntüsünü vereceğiz.

Bu ekran görüntüsünde şimdiye kadar makrolar ile ilgili olarak verilen ekran görüntülerinden farklı olarak Koşul adında bir sütun var. Bu sütuna makro eylemi belirli bir koşula bağlı olarak işletilmek istendiği zaman gerek duyulur. Başlangıçta makro penceresinde görüntülenmeyen Koşul sütununu makro penceresine getirmek veya makro penceresinden kaldırmak için Görünüm menüsündeki Koşul komutundan yararla-nılır. MsgBox() fonksiyonu dışarıdan ikisi seçimlik 3 parametre almaktadır. İlk parametrede diyalog kutusunun içine yazılacak mesaj belirtilmektedir. Sayısal bir değer içerebilen ikinci parametre ile diyalog kutusunda bulunacak düğmeler ve mesajdan önce yer alacak işaret belirtilmektedir. Eğer MsgBox() fonksiyonuna 2. parametre olarak sayısal bir değer verilmezse ekrana getirile-cek diyalog kutusunda, yalnızca diyalog kutusunu ekrandan kaldırmaya yarayan Tamam düğmesi bulunur. Yukarıda verilen MsgBox() fonksiyonu örneğinde 2. parametre olarak 36 sayısal değeri kullanıldı. 2. parametre olarak kullanılan 36 sayısal değeri, aslında 2 ayrı sayısal değerin toplamından meydana gelmektedir. Bu iki sayısal değerden 1.’si mesajdan önce küçük bir daire içinde verilecek soru işaretini temsil ederken, ikincisi diyalog kutusuna konulacak düğmeleri temsil etmektedir. TabloAç eyle-mine ait satırın Koşul sütunu bu şekilde düzenlenen Makro çalıştırılırsa ilk başta Koşul sütununa yazılan MsgBox() fonksiyonu işletile-ceği için aşağıdaki gibi bir diyalog kutusu ekrana gelir.

Yukarıda verilen MsgBox() fonksiyonunu kullanma örneğinde 2. para-metre olarak 36 sayısal değeri yerine 37(5+32) sayısal değeri kullanılmış olun-saydı, diyalog kutusunda Yeniden Dene ve İptal düğmeleri bulunurdu.

MsgBox() fonksiyonu parametre olarak aldığı bu değerlere ve üzerine tıklanan düğmeye bağlı olarak değişen bir sayısal değeri geriye döndürmektedir. Diyalog kutusu Evet düğmesi ile kapatıldığında MsgBox() fonksiyonu geriye 6 sayısal değerini döndürür. Buna göre TabloAç eylemin işletilmesi MsgBox() fonksi-yonu ile ekran getirilen diyalog kutusunda Evet düğmesine tıklanması şartına bağlıdır. Ekrana gelen diyalog kutusunda Hayır düğmesinde tıklanması halinde MsgBox() fonksiyonu geriye 7 sayısal değerini döndüreceğinden belirtilen koşul gerçekleşmez ve makro penceresinde aynı satırda yer alan TabloAç eylemi işletilmez.