Applies ToMicrosoft 365 için Access Access 2024 Access 2021 Access 2019 Access 2016

Yeni veritabanı oluştururken, normalde işe tablolar, formlar ve raporlar gibi çeşitli veritabanı nesneleri oluşturmakla başlarsınız. Sonunda, bazı süreçleri otomatikleştirmek ve veritabanı nesnelerinizi birbirine bağlamak için biraz programlama eklemeniz gereken bir noktaya ulaşırsınız. Bu makale, Access programlama araçlarına yönlendirmenize yardımcı olur.

Bu makalede

Programlama nedir?

Access 'de programlama, Access makroları veya Visual Basic for Applications (VBA) kodunu kullanarak veritabanınıza işlevsellik ekleme işlemidir. Örneğin, bir formla bir rapor oluşturduğunuzu ve forma, tıklandığında raporu açan bir komut düğmesi eklemek istediğinizi varsayalım. Bu örnekte programlama, bir makro veya VBA yordamı oluşturma ve ardından komut düğmesinin OnClick olayı özelliğini, komut düğmesine tıklandığında makro veya yordam çalıştırılacak şekilde ayarlama sürecidir. Raporu açma gibi basit bir işlem için, Komut Düğmesi Sihirbazı'nı kullanıp bütün işi sihirbaza yaptırabilir veya sihirbazı kapatıp programlamayı kendiniz yapabilirsiniz.

Not: Birçok Microsoft Office programında "makro" terimi VBA koduna karşılık gelecek şekilde kullanılır. Access 'da "makro" terimi, Makro Oluşturucusu'nu kullanarak birleştirebileceğiniz adlandırılmış bir makro eylemleri koleksiyonuna başvurduğundan, bu durum kullanıcıların Access kafa karıştırıcı olabilir. Access makro eylemleri, VBA'da kullanılabilen komutların yalnızca bir alt kümesini gösterir. Makro Oluşturucusu size Visual Basic Düzenleyicisi'nden daha yapılandırılmış bir arabirim vererek, VBA kodunu öğrenmek zorunda kalmadan denetimlere ve nesnelere programlama eklemenize olanak tanır. Access Yardım makalelerinde Access makroların makro olarak anıldığını unutmayın. Buna karşılık, VBA kodundan VBA, kod, işlev veya yordam olarak söz edilir. VBA kodu, sınıf modülleri (tek tek form veya raporların parçası olan ve normalde yalnızca bu nesneler için kod içeren modüller) ve modüller (belirli nesnelere bağlı olmayan ve normalde veritabanı genelinde kullanılabilecek "genel" kodu içeren modüller) içinde yer alır.

Nesnelerin (formlar ve raporlar gibi) ve denetimlerin (komut düğmeleri ve metin kutuları gibi) çeşitli olay özellikleri vardır ve bunlara makro veya yordamlar ekleyebilirsiniz. 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 dışındaki faktörler veya diğer olaylara eklenmiş makrolar veya yordamlar tarafından da tetiklenebilir. Birçok olayın çeşitli olay özelliklerine çok sayıda makro veya yordam eklerseniz veritabanınız karmaşık hale gelebilir, ama çoğu durumda çok az programlama kullanarak istediğiniz sonuçları elde edebilirsiniz.

Sayfanın Başı

Makroları mı yoksa VBA kodunu mu kullanmalıyım?

Makroları, VBA'yı veya her ikisini birden kullanma kararı öncelikle veritabanını nasıl dağıtmayı planladığınıza bağlıdır. Örneğin, veritabanı bilgisayarınızda depolanıyorsa, veritabanını yalnızca siz kullanıyorsanız ve VBA kodunu rahatlıkla kullanabiliyorsanız, programlama görevlerinizi çoğunu gerçekleştirmek için VBA kullanmaya karar verebilirsiniz. Öte yandan, veritabanınızı bir dosya sunucusuna koyup başka kişilerle paylaşmayı hedefliyorsanız, güvenlik nedenleriyle VBA kullanmaktan kaçınmak isteyebilirsiniz.

Makro veya VBA kodu kullanma kararını verirken iki noktayı temel almalısınız: güvenlik ve istediğiniz işlevsellik. Güvenlik sorun yaratabilir çünkü VBA, verilerinizin güvenliğini tehlikeye atacak veya bilgisayarınızdaki dosyalara zarar verecek bir kod oluşturmak için kullanılabilir. Kendi oluşturmadığınız bir veritabanını kullanırken, yalnızca veritabanının güvenilir bir kaynaktan geldiğini bildiğiniz durumlarda VBA kodunu etkinleştirmelisiniz. Başka kişilerin kullanacağı bir veritabanı oluştururken, kullanıcının veritabanına özel olarak güvenilir statüsü vermesini gerektiren programlama araçlarını kullanmaktan kaçınmaya çalışmanız gerekir. Kullanıcıların veritabanınıza güvenmesini gerektiren durumlardan kaçınmaya yönelik genel teknikler bu bölümün devamında açıklanacaktı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 VBA programlamasını yalnızca makro eylemleri kullanılarak yapılamayan işlemler için kullanın. Buna ek olarak, yalnızca çalıştırmak için veritabanına güvenilir statüsü vermeyi gerektirmeyen makro eylemlerini kullanmaya çalışmalısınız. Makro eylemleri kullanımının 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ümlerini kullanarak oluşturabileceğinizden daha güçlü makrolar oluşturmanıza olanak tanıyan birçok yeni 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 'nin önceki sürümlerinde bu tür özellikler yalnızca VBA kullanılarak kullanılabilir. Buna ek olarak, makroyu doğrudan bir nesne veya denetimin olay özelliğine 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 ve kapatma ve raporları çalıştırma gibi birçok programlama görevini işlemek için kolay bir yol sağlar. Hatırlamanız gereken çok az söz dizimi olduğundan, oluşturduğunuz veritabanı nesnelerini (formlar, raporlar vb.) hızlı ve kolay bir şekilde birbirine bağlayabilirsiniz. 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 AutoKeys adlı bir makro grubu oluşturmak gerekir.

  • Veritabanı ilk kez açıldığında bir eylemi veya bir dizi eylemi gerçekleştirme. Bunun için AutoExec adlı bir makro oluşturmak gerekir.

    Not:  Access Seçenekleri iletişim kutusunda bir başlatma formu belirlemiş ve o formun s OnOpen veya OnLoad olayına bir makro veya VBA kodu eklemiş olsanız bile, AutoExec makrosu diğer tüm makrolardan veya VBA kodundan önce çalıştırılır.

Makroları oluşturma hakkında daha fazla bilgi için, Makroları anlama bölümüne bakın.

VBA'da dikkate alınacak noktalar

Aşağıdakilerden birini yapmak istiyorsanız, makrolar yerine VPA programlaması kullanmalısınız:

  • Yerleşik işlevleri kullanın veya kendi işlevlerinizi oluşturun    Access bir faiz ödemesini hesaplayan IPmt işlevi gibi birçok yerleşik işlev içerir. Bu yerleşik işlevleri kullanarak, karmaşık ifadeler oluşturmak zorunda kalmadan hesaplamalar yapabilirsiniz. VBA kodunu kullanarak, 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 için en kolay yolun bu işlemi o nesnenin Tasarım görünümünde yapmak olduğunu fark edersiniz. Bununla birlikte bazı durumlarda, kod içinde bir nesnenin tanımını işlemek isteyebilirsiniz. VBA kullanarak, veritabanındaki tüm nesnelere ek olarak veritabanının kendisini de işleyebilirsiniz.

  • Sistem düzeyi eylemleri gerçekleştirme    Access içinden başka bir program (Microsoft Excel gibi) çalıştırmak için bir makroda Uygulama Çalıştır eylemini gerçekleştirebilirsiniz, ancak Access dışında başka bir şey yapmak için makro kullanamazsınız. VBA kullanarak, 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 (DLL) işlevleri çağırabilirsiniz.

  • Kayıtları birer birer işleme    VBA kullanarak her seferinde bir kayıt olmak üzere bir dizi kayıtta ilerleyebilir ve her kayıt üzerinde bir işlem yapabilirsiniz. Buna karşılık, makrolar bir kerede kayıt kümesinin tamamı üzerinde çalışır.

Sayfanın Başı

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 OnClick özelliğine eklenmiş bir makro oluşturur. Bir .mdb veya .adp dosyasında, sihirbaz VBA kodu oluşturur çünkü söz konusu dosya biçimlerinde ekli makrolar kullanılamaz. Her iki durumda da, gereksinimlerinize daha uygun olması için makroyu veya VBA kodunu değiştirebilir veya geliştirebilirsiniz.

  1. 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.

  2. Form Tasarımı sekmesinde aşağı oka tıklayarak Denetimler galerisini görüntüleyin ve Denetim Sihirbazlarını Kullan'ın seçili olduğundan emin olun.

  3. Form Tasarımı sekmesinin Denetimler galerisinde Düğme'ye tıklayın.

  4. Formun tasarım kılavuzunda, komut düğmesinin yerleştirilmesini istediğiniz yere tıklayın.

    Komut Düğmesi Sihirbazı başlatılır.

  5. 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.

  6. 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. Farklı bir resim seçmek istiyorsanız, Access tüm komut düğmesi resimlerinin listesini görüntülemek için Tüm Resimleri Göster onay kutusunu seçin veya başka bir yerde depolanan bir resmi seçmek için Gözat'a tıklayın.

      İleri’ye tıklayın.

  7. Komut düğmesi için anlamlı bir ad girin. Bu isteğe bağlı bir adımdı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 bir sekme sırası ayarlarken), komut düğmelerini birbirinden çok daha kolay ayırt edebilirsiniz. Örneğin komut düğmesi formu kapatıyorsa, düğmeyi cmdClose veya CommandClose olarak adlandırabilirsiniz.

  8. Son'a tıklayın.

    Access komut düğmesini forma yerleştirir.

  9. Sihirbazın sizin için ne "programladığını" görmek isterseniz, şu isteğe bağlı adımları izleyin:

    1. Özellik sayfası şimdiye kadar görüntülenmediyse, F4 tuşuna basarak görüntüleyin.

    2. Özellik sayfasında Olay sekmesine tıklayın.

    3. Tıkladığınızda özellik kutusunda, Düğme resmiOluş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 (makroyu düzenleme hakkında daha fazla bilgi için, Makroları anlama bölümüne bakın). bitirdiğinizde, Makro Tasarımı sekmesinin Kapat grubunda Kapat'a tıklayarak Makro Oluşturucusu'nu kapatın. Access değişiklikleri kaydetmenizi ve özelliği güncelleştirmenizi isterse, değişiklikleri kaydetmek için Evet'e veya değişiklikleri reddetmek için Hayır'a tıklayın.

  10. Form Tasarımı sekmesinin Görünümler grubunda Görünüm'e 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.

Sayfanın Başı

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üğmeye her tıklandığında gerçekleştirilmesini istediğiniz komutları içeren bir makroyla ilişkilendirirsiniz.

Access makroları, gerçekleştirilecek eylemlerin listesini oluşturarak kod oluşturduğunuz basitleştirilmiş bir programlama dili olarak düşünmek yararlı olur. 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ülünde kod yazmadan formlara, raporlara ve denetimlere işlevsellik eklemenize olanak tanır. Makrolar VBA'da kullanılabilen komutların bir alt kümesini sağlar ve çoğu kişi makro yazmayı VBA kodu yazmaktan daha kolay bulur.

Makro oluşturmak için, aşağıdaki resimde gösterilen Makro Oluşturucusu'nu kullanırsınız.

Access 2010 Makro Oluşturucusu

Makro Oluşturucusu'nu görüntülemek için:

  • Oluştur sekmesinin Makrolar ve Kod grubunda Makro'ya tıklayın.

Sayfanın Başı

VBA kodunu anlama

Makrolar gibi VBA da Access uygulamanıza otomasyon ve diğer işlevler eklemenize olanak tanır. Üçüncü taraf denetimleri kullanarak VBA'nın kapsamını genişletebilir ve kendi özel gereksinimleriniz için kendi işlevlerinizi ve yordamlarınızı yazabilirsiniz.

VBA programlamasını kullanmaya başlamanın hızlı bir yolu, önce bir Access makro oluşturmak ve ardından bunu VBA koduna dönüştürmektir. Bunu yapma yönergeleri, Makroları VBA koduna dönüştürme bölümüne eklenmiştir. Bu özellik, makroyla eşdeğer işlemler gerçekleştiren yeni bir VBA 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, Geliştirici Yardımı'nı Access başlatmak ve her anahtar sözcük hakkında daha fazla bilgi edinmek için anahtar sözcüklere tıklayabilir ve F1 tuşuna basabilirsiniz. Ardından Access Geliştirici Yardımı'nı keşfedebilir ve istediğiniz programlama görevlerini gerçekleştirmenize yardımcı olacak yeni komutları keşfedebilirsiniz.

Sayfanın Başı

Makroları VBA koduna dönüştürme

Makroları otomatik olarak VBA modüllerine veya sınıf modüllerine dönüştürmek için Access 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 rapor (veya denetimlerinden herhangi bir) tarafından başvurulan (veya onlara eklenmiş olan) tüm makroları VBA'ya dönüştürür ve VBA kodunu formun veya raporun sınıf modülüne ekler. 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.

  1. Gezinti Bölmesi'nde, forma veya rapora sağ tıklayın ve ardından Tasarım Görünümü'ne tıklayın.

  2. Form Tasarımı sekmesinin Araçlar grubunda Formun Makrolarını Visual Basic'e Dönüştür veya Raporun Makrolarını Visual Basic'e Dönüştür'e tıklayın.

  3. Form makrolarını dönüştür veya Rapor makrolarını dönüştür iletişim kutusunda, Access oluşturduğu işlevlere hata işleme kodu eklemesini isteyip istemediğinizi seçin. Ayrıca, makrolarınızda açıklamalar varsa, bunların işlevlere açıklama olarak eklenmesini isteyip istemediğinizi de seçin. Devam etmek için Dönüştür’e tıklayın.

    Form veya rapor için 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 ayrıca formun veya raporun olay özelliklerini, makrolar yerine yeni VBA yordamlarını çalıştıracak şekilde değiştirir.

  4. VBA kodunu görüntülemek ve düzenlemek için:

    1. 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.

    2. Özellik sayfasının Olay sekmesinde , [Olay Yordamı] ifadesini görüntüleyen herhangi bir özellik kutusuna tıklayın ve ardından Düğme resmiderleme 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 olay yordamını sınıf modülünde 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

  1. 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.

  2. Makro Tasarımı sekmesinin Araçlar grubunda Makroları Visual Basic'e Dönüştür'e tıklayın.

  3. 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.

  4. VBA kodunu görüntülemek ve düzenlemek için:

    1. 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.

    2. Üzerinde çalıştığınız veritabanının adının altında yer alan ağacı genişletin.

    3. Modüller'in altında modül Dönüştürülmüş Makro- makro adı öğesine çift tıklayın.

      Visual Basic Düzenleyicisi modülü açar.

Olay özelliğine VBA işlevi ekleme

Genel makroyu VBA'ya dönüştürdüğünüzde, VBA kodu 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, VBA kodunu bir sınıf modülüne kopyalayabilir 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.

  1. Visual Basic Düzenleyicisi'nde işlev adını not alın. Örneğin, Makrom adlı bir makroyu dönüştürdüyseniz işlev adı Makrom() olur.

  2. Visual Basic Düzenleyicisi'ni kapatın.

  3. Gezinti Bölmesi'nde, işlevi ilişkilendirmek istediğiniz form veya rapora sağ tıklayın ve ardından Tasarım Görünümü'ne tıklayın.

  4. İşlevi ilişkilendirmek istediğiniz denetime veya bölüme tıklayın.

  5. Özellik sayfası şimdiye kadar görüntülenmediyse, F4 tuşuna basarak görüntüleyin.

  6. Özellik sayfasının Olay sekmesinde, işlevi kendisiyle ilişkilendirmek istediğiniz olay özelliği kutusuna tıklayın.

  7. Özellik kutusunda, bir eşittir işareti yazın (=) ve arkasına işlevin adını ekleyin (örneğin, =Makrom(). Parantezleri eklemeyi unutmayın.

  8. Hızlı Erişim Araç Çubuğu'nda Kaydet'e tıklayarak formu veya raporu kaydedin.

  9. 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 VBA kodu eklemenin temel adımlarını biliyorsunuz. Bu makalede, yalnızca başlangıç yapmaya yönelik temel konular açıklanıyor; programlama becerileri edinmenize yardımcı olabilecek birçok harika başvuru kitabı ve çevrimiçi kaynak bulabilirsiniz.

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

Veritabanı nesneleri için olay sırası

Sayfanın Başı

Daha fazla yardıma mı ihtiyacınız var?

Daha fazla seçenek mi istiyorsunuz?

Abonelik avantajlarını keşfedin, eğitim kurslarına göz atın, cihazınızın güvenliğini nasıl sağlayacağınızı öğrenin ve daha fazlasını yapın.

Topluluklar, soru sormanıza ve soruları yanıtlamanıza, geri bildirimde bulunmanıza ve zengin bilgiye sahip uzmanlardan bilgi almanıza yardımcı olur.