Yeni veritabanı oluştururken, işe genellikle tablo, form ve rapor gibi veritabanı nesneleri oluşturmakla başlarsınız. Bir noktada, işlemleri otomatikleştirmek ve bu nesneleri birbirine bağlamak için programlama eklemeniz gerekebilir. Bu makalede Access'teki programlama araçları tanıtılmaktadır.
Bu makalede
- Programlama nedir?
- Makroları mı yoksa VBA kodunu mu kullanmalıyım?
- Komut Düğmesi Sihirbazı'nı kullanarak yaygın programlama görevlerini gerçekleştirme
- Makroları anlama
- VBA kodunu anlama
- Makroları VBA koduna dönüştürme
Programlama nedir?
Access'te programlama, Access makroları kullanarak veritabanınıza işlevsellik eklemek anlamına gelir veya Visual Basic for ApplicationsVisual Basic for Applications (VBA) kodu. Örneğin, bir formla bir rapor oluşturabilir ve ardından forma, seçtiğinizde raporu açan bir komut düğmesi ekleyebilirsiniz. Bu durumda, bir makro veya VBA yordam oluşturur ve ardından komut düğmesinin olay özelliğini, komut düğmesinin OnClick makroyu veya yordamı çalıştırmasını sağlayacak şekilde ayarlarsınız. Raporu açma gibi basit bir işlem için, Komut Düğmesi Sihirbazı'nı kullanıp işi yapabilir veya sihirbazı kapatıp kendiniz programlayabilirsiniz.
Not
Birçok Microsoft Office programında "makro" terimi koda VBA karşılık gelecek şekilde kullanılır. Bu Access kullanıcılarının kafasını karıştırabilir, çünkü Access'te "makro" terimi Makro Oluşturucusu'nu kullanarak bir araya getirdiğiniz adlandırılmış bir makro eylemleri koleksiyonuna karşılık gelir. Access makro eylemleri, uygulamasında sağlanan VBAkomutların yalnızca bir alt kümesini temsil eder. Makro Oluşturucusu size Visual Basic Düzenleyicisi'nden daha yapılandırılmış bir arabirim sağladığından, kod öğrenmeden VBA denetimlere ve nesnelere programlama ekleyebilirsiniz. Access Yardım makalelerinde, Access makrolarına makro adı verilir.
VBA Kod, kod, işlev veya yordam olarak adlandırılır VBA .
VBA Kod, tek tek form veya raporların parçası olan ve genellikle yalnızca bu nesneler için kod içeren sınıf modülleri ile belirli nesnelere bağlı olmayan ve genellikle veritabanı genelinde kullanabileceğiniz genel kodu içeren modüller halinde depolanır.
Form ve rapor gibi nesneler ile komut düğmeleri ve metin kutuları gibi denetimler, makro veya yordamlar ekleyebileceğiniz olay özelliklerine sahiptir. Her olay özelliği fareyi tıklama, formu açma veya metin kutusundaki verileri değiştirme gibi belirli bir olayla ilişkilendirilmiştir. Olaylar, sistem olayları gibi Access'in dışındaki faktörler tarafından veya başka olaylara eklenmiş makrolar veya yordamlar tarafından da tetiklenebilir. Birçok nesnedeki birçok olay özelliğine çok sayıda makro veya yordam eklerseniz, veritabanınız karmaşık hale gelebilir. Ancak çoğu durumda, çok az programlama kullanarak istediğiniz sonuçları elde edebilirsiniz.
Makroları mı yoksa VBA kodunu mu kullanmalıyım?
Makroları VBAveya her ikisini birden kullanma kararı esas olarak veritabanını nasıl dağıtmayı planladığınıza bağlıdır. Örneğin, veritabanı bilgisayarınızda depolanıyorsa, tek kullanıcı sizseniz ve kod kullanma VBA konusunda rahatsanız, çoğu programlama görevinde kullanmaya VBA karar verebilirsiniz. Öte yandan, veritabanınızı bir dosya sunucusundan başka kişilerle paylaşmayı planlıyorsanız, güvenlik nedenleriyle veritabanınızı kullanmaktan VBA kaçınmak isteyebilirsiniz.
Makro veya VBA kod kullanma kararınızı verirken iki noktayı temel alın: güvenlik ve istediğiniz işlevsellik. Güvenlik önemlidir çünkü VBA verilerinizin güvenliğini tehlikeye atan veya bilgisayarınızdaki dosyalara zarar veren kodlar oluşturmak için kullanılabilir. Başka birinin oluşturduğu bir veritabanını kullanırken, yalnızca veritabanının güvenilir bir kaynaktan geldiğini biliyorsanız kodu etkinleştirin VBA . Başka kişilerin kullanacağı bir veritabanı oluştururken, kullanıcının veritabanına açıkça güvenmesini gerektiren programlama araçlarını kullanmaktan kaçının. Bu gereksinimden kaçınmaya yönelik genel teknikler bu bölümün ilerleyen bölümlerinde yer almaktadır.
Veritabanınızın güvenliğini sağlamaya yardımcı olmak için, mümkün olduğunca makroları kullanmaya çalışın ve yalnızca makro eylemleri kullanılarak yapılamayan işlemler için kullanın VBA . Ayrıca, yalnızca çalıştırılmadan önce veritabanına güvenilmesini gerektirmeyen makro eylemlerini kullanmaya çalışın. Makro eylemlerinin bu şekilde sınırlanması, kullanıcıların veritabanında verilere ve bilgisayarlarındaki diğer dosyalara zarar verebilecek programlama bulunmadığına güvenmesini sağlar.
Makroda dikkate alınacak noktalar
Access, önceki Access sürümlerinden daha güçlü makrolar oluşturmanıza olanak tanıyan birçok makro eylemi içerir. Örneğin, şimdi makro eylemlerini kullanarak genel geçici değişkenler oluşturabilir, bunları kullanabilir ve yeni hata işleme makro eylemlerini kullanarak hataları daha düzgün işleyebilirsiniz. Access'in önceki sürümlerinde, bu özellikler yalnızca VBA. Ayrıca makroyu doğrudan bir nesne veya denetimin olay özelliğine de ekleyebilirsiniz. Eklenmiş makro nesnenin veya denetimin bir parçası haline gelir ve nesne veya denetim taşındığında veya kopyalandığında onunla birlikte kalır.
Makrolar, formları açma, kapatma ve raporları çalıştırma gibi birçok programlama görevini gerçekleştirmek için kolay bir yol sağlar. Oluşturduğunuz form ve rapor gibi veritabanı nesnelerini hızlı bir şekilde birbirine bağlayabilirsiniz, çünkü anımsanacak söz dizimi çok azdır. Her eylemin bağımsız değişkenleri Makro Oluşturucusu'nda görüntülenir.
Makroların sağladığı güvenlik artışı ve kullanım kolaylığının yanı sıra, aşağıdaki görevleri gerçekleştirmek için makroları kullanmalısınız:
Tuşa bir eylem veya eylem kümesi atama. Bunun için adında bir makro grubu
AutoKeysoluşturmak gerekir.Veritabanı ilk kez açıldığında bir eylemi veya bir dizi eylemi gerçekleştirme. Bunun için adında bir makro
AutoExecoluşturmak gerekir.Not
AutoExecAccess Seçenekleri iletişim kutusunda bir başlangıç formu belirlemiş ve o formaOnOpenveya olaya bir makro veya kod eklemiş olsanız bile, makro diğer tüm makroVBAveyaVBAOnLoadkodlardan önce çalıştırılır.
Makroları oluşturma hakkında daha fazla bilgi için bkz: Makroları anlama.
VBA'da dikkate alınacak noktalar
Aşağıdakilerden birini yapmak istiyorsanız makrolar yerine kullanın VBA :
- Yerleşik işlevleri kullanın veya kendi işlevlerinizi oluşturun. Access'te,
IPmtfaiz ödemesini hesaplayan , gibi birçok yerleşik işlev vardır. Bu işlevleri kullanarak karmaşık ifadeler oluşturmadan hesaplamalar yapabilirsiniz. komutunu kullanarakVBA, bir ifadenin kapasitesini aşan hesaplamalar yapmak veya karmaşık ifadelerin yerine kullanmak için kendi işlevlerinizi de oluşturabilirsiniz. Buna ek olarak, oluşturduğunuz işlevleri ifadelerde kullanarak ortak bir işlemi birden çok nesneye uygulayabilirsiniz. - Nesneleri oluşturma veya işleme. Çoğu durumda, bir nesneyi oluşturmak ve değiştirmek en kolay yoldur. Ancak bazı durumlarda, kod içinde bir nesnenin tanımını işlemek isteyebilirsiniz. 'yi kullanarak
VBA, veritabanındaki tüm nesneleri ve veritabanının kendisini işleyebilirsiniz. - Sistem düzeyi eylemleri gerçekleştirin. Access'in içinden Microsoft Excel gibi başka bir program çalıştırmak için bir makronun içinde bu eylemi gerçekleştirebilirsiniz
RunApp, ancak Access'in dışında başka önemli işlemler yapmak için makro kullanamazsınız. özelliğini kullanarakVBA, bilgisayarda bir dosyanın mevcut olup olmadığını denetleyebilir, Excel gibi Microsoft Windows tabanlı diğer programlarla iletişim kurmak için Otomasyon veya Dinamik Veri Değişimi (DDE) kullanabilir ve Windows dinamik bağlantı kitaplıklarındaki işlevleri çağırabilirsiniz (DLLs). - Kayıtları birer birer işleme. Bir kerede bir kayıt olacak şekilde bir dizi kayıtta ilerleyebilir
VBAve her kayıt üzerinde bir işlem yapabilirsiniz. Diğer yandan, makrolar bir kerede kayıt kümesinin tamamı üzerinde çalışır.
Komut Düğmesi Sihirbazı'nı kullanarak yaygın programlama görevlerini gerçekleştirme
Forma bir komut düğmesi ekliyorsanız, Komut Düğmesi Sihirbazı programlamaya başlamanıza katkıda bulunabilir. Sihirbaz, belirli bir görev gerçekleştiren bir komut düğmesi oluşturmanıza yardımcı olur. Access (.accdb) dosyasında, sihirbaz komut düğmesinin özelliğine eklenmiş OnClick bir makro oluşturur. Bir .mdb OR .adp dosyasında kod oluşturur VBA , çünkü söz konusu dosya biçimlerinde ekli makrolar kullanılamaz. Her iki durumda da, gereksinimlerinize daha uygun olması için makroyu veya kodu değiştirebilir veya VBA geliştirebilirsiniz.
Gezinti Bölmesi'nde, komut düğmesini eklemek istediğiniz forma sağ tıklayın ve ardından Tasarım Görünümü'ne tıklayın.
Form Tasarımı sekmesinde aşağı oka tıklayarak Denetimler galerisini görüntüleyin ve Denetim Sihirbazları Kullan'ın seçili olduğundan emin olun.
Form Tasarımı sekmesindeki Denetimler galerisinde Düğme'ye tıklayın.
Formun tasarım kılavuzunda, komut düğmesinin yerleştirilmesini istediğiniz yere tıklayın. Komut Düğmesi Sihirbazı başlatılır.
Sihirbazın ilk sayfasında, Kategoriler listesindeki her kategoriye tıklayarak sihirbazın komut düğmesini hangi eylemleri gerçekleştirmek için programlayabileceğini görün. Eylemler listesinde istediğiniz eylemi seçin ve ardından İleri'ye tıklayın.
Komut düğmesinde metin mi yoksa resim mi görüntülenmesini istediğinize bağlı olarak, Metin seçeneğine veya Resim seçeneğine tıklayın.
- Metin görüntülenmesini istiyorsanız, Metin seçeneğinin yanındaki kutuda yer alan metni düzenleyebilirsiniz.
- Resim görüntülenmesini istiyorsanız, sihirbaz listede bir resim önerir. Başka bir resim seçmek istiyorsanız, Tüm Resimleri Göster onay kutusunu seçerek Access'in sağladığı tüm komut düğmesi resimlerinin listesini görüntüleyin veya başka bir konumda depolanan bir resim seçmek için Gözat'a tıklayın. İleri’ye tıklayın.
Komut düğmesi için anlamlı bir ad girin. Bu adım isteğe bağlıdır ve bu ad komut düğmesi üzerinde görüntülenmez. Öte yandan, anlamlı bir ad girmek iyi bir yöntemdir çünkü daha sonra komut düğmesine başvurmanız gerektiğinde, örneğin formunuzdaki denetimler için sekme sırasını ayarlarken, komut düğmelerini birbirinden çok daha kolay ayırt edebilirsiniz. Örneğin, komut düğmesi formu kapatıyorsa, düğmeyi
cmdCloseveyaCommandClose.Son'a tıklayın. Access komut düğmesini forma yerleştirir.
Sihirbazın sizin için ne programladığını görmek isterseniz, şu isteğe bağlı adımları izleyin:
Özellik sayfası şimdiye kadar görüntülenmediyse F4 tuşuna basarak görüntüleyin.
Özellik sayfasında Olay sekmesine tıklayın.
Tıklandığında özellik kutusunda Oluştur düğmesine tıklayın.
Access Makro Oluşturucusu'nu başlatır ve sihirbazın oluşturduğu makroyu görüntüler. İsterseniz makroyu düzenleyebilirsiniz. Daha fazla bilgi için bkz: Makroları anlama. Bitirdiğinizde, Makro Tasarımı sekmesinin Kapat grubunda, Makro Oluşturucusu'nu kapatmak için Kapat'ı tıklatın. Access değişiklikleri kaydetmenizi ve özelliği güncelleştirmenizi isterse, değişiklikleri kaydetmek için Evet'e veya reddetmek için Hayır'a tıklayın.
Form Tasarımı sekmesinin Görünümler grubunda Görünüm'e tıklayın ve ardından Form Görünümü'ne tıklayın. Beklediğiniz gibi çalıştığını onaylamak için yeni komut düğmesine tıklayın.
Makroları anlama
Makro, görevleri otomatikleştirmenizin yanı sıra formlarınıza, raporlarınıza ve denetimlerinize işlevler eklemenizi sağlayan bir araçtır. Örneğin, bir forma komut düğmesi ekleyip düğmenin OnClick olay özelliğini, düğmenin her seçildiğinde gerçekleştirmesini istediğiniz komutları içeren bir makroyla ilişkilendirebilirsiniz.
Access makrolarını, gerçekleştirilecek eylemlerin listesini hazırlayarak kod oluşturduğunuz, basitleştirilmiş bir programlama dili olarak düşünmek, anlamanıza yardımcı olabilir. Makro oluştururken, her eylemi bir açılan listeden seçersiniz ve sonra da her eylem için gerekli bilgileri doldurursunuz. Makrolar, bir VBA modülde kod yazmadan formlara, raporlara ve denetimlere işlevsellik eklemenizi sağlar. Makrolar, uygulamasında bulunan VBAkomutların bir alt kümesini sağlar ve çoğu kişi makro yazmayı kod yazmaktan VBA daha kolay bulur.
Makro oluşturmak için, aşağıdaki resimde gösterilen Makro Oluşturucusu'nu kullanırsınız.
Makro Oluşturucusu'nu görüntülemek için:
- Oluştur sekmesinin Makrolar ve Kod grubunda Makro'ya tıklayın.
VBA kodunu anlama
Makrolar gibi, VBA Access uygulamanıza otomasyon ve başka işlevler eklemenize olanak tanır. Üçüncü taraf denetimleri kullanarak genişletebilir VBA ve belirli gereksinimler için kendi işlevlerinizi ve yordamlarınızı yazabilirsiniz.
Kullanmaya VBA başlamanın hızlı bir yolu, önce Access makrosu oluşturup sonra bunu koda dönüştürmektir VBA . Bunu yapma yönergeleri, Makroları VBA koduna dönüştürme bölümünde verilmiştir. Bu özellik, makroyla eşdeğer işlemleri gerçekleştiren yeni VBA bir modül oluşturur. Ayrıca, yordamda değişiklik yapmaya başlayabilmeniz için Visual Basic Düzenleyicisi'ni de açar. Visual Basic Düzenleyicisi'nde çalışırken, Access Geliştirici Yardımı'nı başlatmak ve her anahtar sözcük hakkında daha fazla bilgi edinmek için anahtar sözcüklere tıklayıp F1 tuşuna basabilirsiniz. Ardından Access Geliştirici Yardımı'nı gözden geçirebilir ve istediğiniz programlama görevlerini gerçekleştirmenize yardımcı olacak yeni komutlar keşfedebilirsiniz.
Makroları VBA koduna dönüştürme
Makroları otomatik olarak modüllere veya sınıf modüllerine dönüştürmek için Access'i VBA kullanabilirsiniz. Forma veya rapora eklenmiş makroları, iste ayrı nesneler isterse eklenmiş makrolar olsunlar, dönüştürebilirsiniz. Ayrıca belirli bir form veya rapora eklenmemiş genel makroları da dönüştürebilirsiniz.
Forma veya rapora eklenmiş makroları dönüştürme
Bu işlem, form veya raporda veya denetimlerinden herhangi birinde başvurulan veya onlara eklenmiş olan tüm makrolara dönüştürür VBA ve kodu formun veya raporun sınıf modülüne ekler VBA . Sınıf modülü form veya raporun bir parçası olur ve form veya rapor taşındığında veya kopyalandığında, onunla birlikte taşınır.
Gezinti Bölmesi'nde, forma veya rapora sağ tıklayın ve ardından Tasarım Görünümü'ne tıklayın.
Form Tasarımı sekmesinin Araçlar grubunda, Form Makrolarını Visual Basic'e Dönüştür veya Rapor Makrolarını Visual Basic'e Dönüştür seçeneğine tıklayın.
Form makrolarını dönüştür veya Rapor makrolarını dönüştür iletişim kutusunda, Access'in oluşturduğu işlevlere hata işleme kodu eklemesini isteyip istemediğinizi seçin. Makrolarınız açıklama içeriyorsa, bu açıklamaların işlevlere eklenmesini isteyip istemediğinizi de seçin. Devam etmek için Dönüştür’e tıklayın. Form veya raporun sınıf modülü yoksa, Access bir modül oluşturur ve form veya raporla ilişkilendirilmiş her makro için modüle bir yordam ekler. Access, form veya raporun olay özelliklerini de makrolar yerine yeni
VBAyordamları çalıştıracak şekilde değiştirir.Kodu görüntülemek ve düzenlemek
VBAiçin:Form veya rapor Tasarım görünümünde açık durumdayken, özellik sayfası henüz görüntülenmediyse F4 tuşuna basarak görüntüleyin.
Özellik sayfasının Olay sekmesinde, görüntülenen
[Event Procedure]herhangi bir özellik kutusuna tıklayın ve ardından Oluştur düğmesine tıklayın. Belirli bir denetimin olay özelliklerini görüntülemek için, denetimi tıklayarak seçin. Form veya raporun tamamının olay özelliklerini görüntülemek için, özellik sayfasının en üstündeki açılan listede Form veya Rapor seçin.
Access Visual Basic Düzenleyicisi'ni açar ve sınıf modülünde olay yordamını görüntüler. Aynı sınıf modülünde yer alan diğer yordamları görmek için ekranı yukarı veya aşağı kaydırabilirsiniz.
Genel makroları dönüştürme
Gezinti Bölmesi'nde, dönüştürmek istediğiniz makroya sağ tıklayın ve sonra Tasarım Görünümü'ne tıklayın.
Makro Tasarımı sekmesinin Araçlar grubunda Makroları Visual Basic'e Dönüştür'e tıklayın.
Makroyu Dönüştür iletişim kutusunda, istediğiniz seçenekleri belirtin ve ardından Dönüştür'e tıklayın. Access, makroyu dönüştürür ve Visual Basic Düzenleyicisi'ni açar.
Kodu görüntülemek ve düzenlemek
VBAiçin:- Visual Basic Düzenleyicisi'nde Tasarı Araştırmacısı bölmesi görüntülenmiyorsa, Görünüm menüsünde Tasarı Araştırmacısı'na tıklayın.
- Üzerinde çalıştığınız veritabanının adının altında yer alan ağacı genişletin.
-
Modüller altında modüle
Converted Macro-<macro name>çift tıklayın. Visual Basic Düzenleyicisi modülü açar.
Olay özelliğine VBA işlevi ekleme
Genel makroyu 'a VBAVBA dönüştürdüğünüzde, kod standart bir modüle yerleştirilir. Sınıf modülünden farklı olarak, standart modül form veya raporun parçası değildir. Kodun tam olarak istediğiniz zaman ve istediğiniz yerde çalıştırılması için, büyük olasılıkla işlevi bir form, rapor veya denetimdeki olay özelliğiyle ilişkilendirmek istersiniz. Bunu yapmak için, kodu bir sınıf modülüne kopyalayabilir VBA ve ardından bunu bir olay özelliğiyle ilişkilendirebilir veya aşağıdaki yordamı kullanarak olay özelliğinden standart modüle özel bir çağrı yapabilirsiniz.
- Visual Basic Düzenleyicisi'nde işlev adını not alın. Örneğin, adlı bir makroyu
MyMacrodönüştürdüyseniz işlev adıMyMacro(). - Visual Basic Düzenleyicisi'ni kapatın.
- Gezinti Bölmesi'nde, işlevi ilişkilendirmek istediğiniz formu veya raporu sağ tıklatın ve ardından Tasarım Görünümü'nü tıklatın.
- İşlevi ilişkilendirmek istediğiniz denetime veya bölüme tıklayın.
- Özellik sayfası şimdiye kadar görüntülenmediyse F4 tuşuna basarak görüntüleyin.
- Özellik sayfasının Olay sekmesinde, işlevi kendisiyle ilişkilendirmek istediğiniz olay özelliği kutusuna tıklayın.
- Özellik kutusunda, bir eşittir işareti (
=) girin ve arkasına işlevin adını (örneğin,=MyMacro(). Parantezleri eklemeyi unutmayın. - Hızlı Erişim Araç Çubuğu'nda Kaydet'e tıklayarak formu veya raporu kaydedin.
- Gezinti Bölmesi'nde forma veya rapora çift tıklayın ve kodun gerektiği gibi çalıştığını görmek için test edin.
Artık veritabanınıza kod eklemenin VBA temel adımlarını biliyorsunuz. Bu makalede, yalnızca başlangıç yapmaya yönelik temel bilgiler açıklanır. Birçok mükemmel referans kitabı ve çevrimiçi kaynak, programlama becerilerinizi geliştirmenize yardımcı olabilir.
Ayrıca bkz.
Kullanıcı arabirimi (UI) makrosu oluşturma
Access makrolarını klavye kısayolu kullanarak çalıştırma
Başlangıç olaylarını makro ile otomatikleştirme
Veritabanını açtığınızda çalışan bir makro oluşturma