Access’de makrolar yardımıyla bir dizi işlemleri ard arda yapmanızı sağlar. Genelde Makro ve Modül yazmak birbirleri ile karıştırılıyor. Makro kod yazmadan ekran üzerinden adım işlemleridir. Modül yazmak için Visual Basic Kodları ile Makro’ya alternatif kodla ayı işlemi yapmaktır.
Bu sebeple temelinde Visual Basic kodları vardır. Bu sebeple çalışma mantığı da kod gibi çalışır. Yani ilk verdiğiniz işlem yapılır ardından diğer verdiğiniz işleme geçer. Makro açmak için tıpkı raporlar formlar tablolar oluşturduğumuz gibi Oluştur Sekmesinden Makro butona basarak oluşturabilirsiniz.
Karşınıza aşağıdaki şekilde bir ekran gelecektir. Yeni Eylem Ekle kısmında aşağı doğru açtığınızda hazır birçok makro gelecektir. Bir veya birden fazla işlemi ard arda ekleyerek kullanabilirsiniz
Eylem Kataloğu bölümünde ise Kategori şeklinde makrolar görülmektedir. Örneğin excel’de kullandığımız Eğer fonksiyonunu Access’de bu bölümde kullanılabilir.
Makro oluşturduğumuzda aşağıdaki şekilde Tasarım Sekmesi açılacaktır.
Makroları hazırladıktan sonra Çalıştır dediğinizde makro çalışacaktır. Biz Makroları herhangi Access platformundaki olaylarda kullanabiliriz. Örneğin form açıldığında istediğimiz formun açılması gibi yetkiler verebiliriz. Ya da hazırladığımız makroyu bir butona bağlayabiliriz. Butona basıldığında çalıştırırız. İhtiyacınıza göre kullanabilirsiniz.
Access’deki Olay (Event) Nedir?
Peki Olaylardan bahsettik ama nedir bu Olay biraz ondan bahsetmek istiyorum. Yazılımla ilgilenen kişiler bu kavrama hakimdir. Çünkü programı hazırladığınızda amacınız programı kullanacak kişilerin programı kullanırken yapması muhtemel hareketleri yön vererek daha zahmetsiz kayıt rapor gibi işlemleri yapmasını sağlamaktır. Mesela Kullanıcı Mouse ile Form’a tıkladığında bir Olay’dır. Ne zaman kullanıcı Form’da Mouse Tıklarsa bu olay içerisine istediğiniz bir dizi kod yazabilirsiniz. Ya da Kaydet Butonuba basmak bir olaydır. Butona bastığı anda kayıtdaki belirlediğiniz zorunlu verileri girmezse hata uyarısı verdirebilirsiniz. Bunun gibi.
Olaylar ise (Yazılımdaki karşılığı Event olarak geçer) Form açılığında kapandığında gibi yapılan kullanıcının yaptığı her harekette makro veya kod yazmanızı sağlıyor. Böylece hazırladığınız programı istediğiniz gibi yönlendirebilirsiniz.
Access Programında olaylar kullanıcının sürekli kullandığı Formlar ve Raporlarda Özellik Sayfasında ayrıca Olay Sekmesi vardır. Kalan diğer Tablo, Sorgu, Makro gibi işlemlerde yoktur. Çünkü bu alanları son kullanıcılar kullanmazlar. Access programı yazanlar içindir.
Duruma göre Olaylar da aşağıdaki gibi kategori edebiliriz.
- Form Sayfasındaki olaylar
- Rapor Sayfasındaki Olaylar
- Denetimlerdeki Olaylar
Form Sayfası Olayları
Aşağıdaki olaylar sadece Access formları ile ilgilidir. Daha forma birçok tasarım yapacağız. Buton, textbox gibi işlemlerin olayları farklıdır.
· Geçerli Olduğunda · Yüklendiğinde · Tıklandığında · Güncelleştirme sonrasında · Güncelleştirme Öncesinde · Ekleme Öncesinde · Ekleme Sonrasında · Silme Onayı Öncesinde · Silindiğinde · Silme Onayı Sonrasında · Kirlide · Odaklandığında · Çift Tıklandığında · Fare Tuşuna Basılırken · Fare Tuşu Bırakılırken · Fare Taşıdığında · Tuş Bırakılırken · Tuşa Basılırken · Tuşa Basıldığında |
· Geri Alındığında · Açıldığında · Kapandığında · Yeniden Boyutlandığında · Etkinleştiğinde · Devreden Çıkmada · Kaldırıldığında · Hata Durumunda · Fare Hareket Ettiğinde · Filtrede · Filtre Uygulandığında · Zaman Dolduğunda · Sür eölçer Aralığı · Seçim Değiştiğinde · Oluşturmadan Önce · Son oluşturucudan Sonra · Oluşturmadan Sonra · Düzenden Sonra · Bağlandığında |
· Bağlantı Kesildiğinde · Sorgudan Önce · Sorguda · Veri Değişiminde · Veri Kümesi Değişimde · Komut Yürütüldüğünde · Komut Yürütülmeden Önce · Komut Etkinleştirildiğinde · Komut İşaretlendiğinde · Görünüm Değişimde · PivotTable Değiştiğinde · Ekran İpuçundan Önce · Tuş Önzileme |
Rapor Sayfası Olayları
· Geçerli Olduğunda · Yüklendiğinde · Veri Yokken · Tıklandığında · Odaklandığında · Odaklanma Sonlandığında · Çift Tıklandığında · Fare Tuşu Basılırken · Fare Tuşu Bırakılırken |
· Fare Taşıdığında · Tuş Bırakılırken · Tuşa Basılırken · Tuşa Basıldığında · Açıldığında · Kapandığında · Yeniden Boyutlandığında · Etkinleştiğinde · Devreden Çıkmada |
· Kaldırıldığında · Hata Durumunda · Fare Hareket Ettiğinde · Filtrede · Filtre Uygulandığında · Zaman Dolduğunda · Süre ölçer Aralığı · Sayfaya Gelindiğinde · Tuş Önizle |
Form ve Rapor Denetimlerdeki Olaylar
Formda ve Raporlarda aşağıdaki olaylar kullanılmaktadır. Tuşların özelliğine göre olaylar azalabilir.
· Tıklandığında · Odaklandığında · Odaklanma Sonlandığında · Çift Tıklandığında · Fare Tuşuna Basılırken |
· Fare Tuşu Bırakılırken · Fare Taşınırken · Fare Taşındığında · Tuşa Basılırken · Tuş Bırakılırken |
· Tuşa Basıldığında · Girildiğinde · Çıkıldığında |
Access Makro Örnekleri
Excelden de aşina olduğumuz makro kelimesi söylendiğinde Visual Basic ile kod yazmak aklına gelir. Ancak Access’de bu kod yazma işlemi Modül olarak bahsetmek daha doğru olur. Çünkü Access’de Makro dediğimizde Excel’deki fonksiyonlar gibi düşünebilirsiniz. En çok kullanılan veya diğer bir ifade ile Access’de ihtiyacımız olması muhtemel işlemleri kod ile hazırlanmış ve menülerle kullanılan bir araç olarak düşünmek daha doğru olacaktır.
Access’deki Makro işleminde kod bilmenize gerek yok. Sadece Access olayları iyi analiz edip Access Makroları neyi nerde kullanacağınızı bilmeniz yeterlidir.
Şimdiki bölümümüzde en çok kullanılan makrolardan bahsedeceğim. Bu örneklerle Access Makro kafanızda daha iyi oturacaktır.
Access Açıldığında Makro Oluşturmak
Yukarda bahsettiğimiz Formlar, Raporlar gibi Access nesneleri üzerindeki olaylardan bahsetmiştik. Bu örnek ise hazırlanan Accesss programı açılırken çalışan Olay’dan bahsedeceğim.
Access programı açıldığında daha önce hazırladığımız ANASAYFA formunu açalım.
Açılırken herhangi bir nesne açılmadığından bu işlemi makrolara vereceğimiz standart isimlerle belirleyeceğiz. Verilecek Makro Adı Autoexec verildiğinde makroda yapacağınız işler Access açıldığında çalışacaktır.
Oluştur Sekmesinden Makro açıyoruz.
Yeni Eylem Ekle’den Form Aç Diyoruz.
Sonraki adımda Form Adını Sormaktadır. Açılışta açılacak olan FORM_TABLO_MUSTERIKARTI formu seçiyoruz.
İşin püf noktasına geldik. Makroya kaydederken Autoexec olarak kaydediyoruz.
Makro bölümünüzde dosya oluştu.
Şimdi test ettiğimizde belirlediğimiz formun açıldığını göreceksiniz.
GeçiciDeğişkenBelirle Makrosu ile Formdan Rapora değer gönder.
Müşteri Kartından Rapor Al Adında bir düğme oluşturuyoruz.
Olay Kısmında Tıklandığında olayına seçiyoruz.
Makro Oluşturucusu Seçiyoruz.
Boş makro ekranı gelecektir. Eylem Kataloğundan Makro Komutları altında GeçiciDeğişkenBelirle alanını çift tıklayarak makro kısmına getiriyoruz.
Vereceğimi değişkeni istediğimiz yerde kullanabiliriz. Ad kısmına tmpMusteriNo ismini veriyoruz.
İfade kısmına iste Müşteri Kartı formundaki hangi değeri almak istiyorsak o değeri giriyoruz.
Müşteri Numarasını almak istiyorum. FORM_MUSTERI’DEN Müşteri Numarası ID alanıı seçiyorum. Özellikler Sayfasındaki Ad alanında belirlediğimiz ismi txtMusteriNo kopyalıyoruz.
Makro’daki İfade kısmına [txtMusteriNo] şeklinde ekliyoruz.
Artık tmpMusteriNo alanını kullandığımız yerde formda açık olan müşteri ID alanını kullanana bileceğiz.
Makroda işlemimiz bitmedi. İlk işlem değişken belirlemesinden sonra Rapor Aç ekranı ile daha önce tasarladığımız Müşteri ve Satış tablosunun bağlı olduğu Rapor gelecek.
Bunun için Rapor Aç Makrosunu çağırıyorum.
Rapor Adına daha önce tasarladığım RAPOR_MUSTERI tablosunu seçiyorum.
Görünüm Rapor şeklinde açılsın istiyorum. Eğer bunu seçmezsem Tasarım görünümünde de seçiyorum.
Rapor Kısmı
Hazırladığımız RAPOR_MÜŞTERİ’de aşağıdaki şekildedir.
Raporun veri kaynağı SORGU_SATIS tablosudur.
Sorgu Kısmı
Sorgu Satış Tablosunu aşağıdaki şekilde MÜŞTERİ ve SATIŞ tabloları alanlarından Raporda göstereceğimiz alanları seçtim. En başta ID alanına belirlediğim değişkeni kullanarak sadece istediğim ID’li verileri getirmek istiyorum.
Bunun için Ölçüt Kısmına
[GeçiciDeğişkenler]![tmpMusteriNo]
şeklinde yazıyoruz.
Daha önce Formdan Geçici Değişkenle aldığımız Müşteri ID alanını Şimdi Sorgular Kısmında kullanmış oluyorum. Sorgu’da Raporlara bağlı olduğu için Rapor Al tuşuna bastığımda istediğim kaydı listelemiş olacağım.
Böylece 34 Makale ile Access Eğitimi tamamlamış olduk. Beni sabırla takip ettiğiniz için çok teşekkür ederim.
ACCESS EĞİTİMİ BİTTİ 🙂