Makrolar. Makro oluşturma türleri ve yöntemleri. Makrolar (eylemler) nasıl yazılır Bir düğmeye makro atama

Kitabın önceki bölümlerinde tartıştığımız ana Microsoft Access araçları seti, programlama dillerini konuşmayan kullanıcılara yöneliktir. Programcılar için bu araçlar, makrolar(Access sisteminin makro dilindeki küçük programlar) ve modüller(Uygulama için Visual Basic, VBA'daki prosedürler). Onların yardımıyla, oluşturduğunuz uygulamanın işlevselliğini önemli ölçüde genişletebilir ve belirli kullanıcıların ihtiyaçlarına göre özelleştirebilirsiniz. Bu bölümde, bu araçlardan biri olan makroları ve Access programlama dillerinden biri olan makro dilini tanıtacağız. Sizi VBA modülleri ve dili ile tanıştıracağız içinde ch. 13 ,

Bu nedenle, aşağıdaki soruları tartışacağız:

  • makro kavramı
  • Uygulamalarda makro kullanma
  • Makrolar ve makro grupları oluşturma
  • Makro yürütme sürecini kontrol etmek için koşulları ayarlama
  • Makroları çalıştırmanın farklı yolları
  • Makrolarda Hata Ayıklama İpuçları
  • Makroları kullanarak formlarda ve raporlarda olayları işleme

Microsoft Access veritabanında makro kullanma

Makroları kullanarak, Access nesneleri üzerinde önceki bölümlerde açıklanan hemen hemen tüm eylemleri gerçekleştirebilirsiniz.

Access'teki bir makro, sırayla veya belirli koşullar tarafından belirtilen bir sırada yürütülen bir veya daha fazla makrodan oluşan bir yapıdır. Access'teki makro seti çok geniştir, makroların yardımıyla VBA prosedürlerinin izin verdiği şeylerin çoğunu uygulayabilirsiniz. Her makronun belirli bir adı ve muhtemelen kullanıcı tarafından sağlanan bir veya daha fazla bağımsız değişkeni vardır. Örneğin, OpenForm makrosunu kullanırken, en azından açılacak formun adını ve argüman olarak görüntüleme modunu belirtmelisiniz.

tablo 11.1, kategorilere göre gruplandırılmış Microsoft Access 2002 makrolarının bir listesini içerir: formlarda ve raporlarda verilerle çalışma; komutların, makroların, prosedürlerin ve sorguların yürütülmesi; nesnelerle çalışmak; veri ve nesnelerin ve diğerlerinin içe / dışa aktarılması. "Diğer" kategorisi, uygulama arayüzünü etkilemenize izin veren tüm makroları içerir.

Kategori Randevu Makro
Formlarda ve raporlarda verilerle çalışma Veri örnekleme Filtre Uygula
Veriler arasında gezinme SonrakiKayıt (FindNext) FindRecord (GoToControl) Sayfada (GoToPage) ForRecord (GoToRecord)
Verileri veya ekranı yenileyin Güncelle (Sorgulama) ShowAllRecords (ShowAllRecords)
Verim Komut yürütme Komutu Çalıştır (RunComraand)
Makro, Prosedür veya Sorgu Yürütme RunMacro RunCode OpenQuery 3anyc'den 3anpoca SQL'e (RunSQL)
Başka bir uygulama yürütme Bir Uygulama Başlatma (RunApp)
Yürütmeyi iptal etme Olayı İptal Et (CancelEvent) AllMacros'u Durdur (StopAllMacros) StopMacro (StopMacro)
Microsoft Access'ten çıkış yapın Çık
İthalat ihracat Microsoft Access Nesnelerini Diğer Uygulamalara Geçirme Formatta Çıktı (OutputTo) SendObject (SendObject)
Veri biçimi dönüştürme Transfer Veritabanı TransferSQLDat abase Transfer Elektronik Tablosu TransferText
nesnelerle çalışma Bir nesneyi kopyalama, yeniden adlandırma ve kaydetme CopyObject CopyDatabase Dosyasını Yeniden Adlandır Kaydet
Diğer Yerleşik veya özel araç çubuğunu görüntüleme veya gizleme Bip sesi verme Araç Çubuğu (ShowToolbar) Sinyali (Fan)

Tablo 11.1. Microsoft Access 2002 Makroları

Bu tablodan da görebileceğiniz gibi, makrolar kullanılarak gerçekleştirilebilecek eylemler çok çeşitlidir. Uygulamalarınızda makro kullanmayacak olsanız bile, aşağıda gösterildiği gibi VBA prosedürlerinde kullanılabildikleri için bu makroları öğrenmeniz mantıklı olacaktır. (bkz. bölüm 13).

Access'in önceki sürümüyle karşılaştırıldığında, Microsoft Access 2002'nin üç yeni makrosu vardır:

TransferSQLDatabase - Microsoft SQL Server 7.0 ve üzeri bir veritabanını başka bir sunucuya aktarır;

CopyDatabaseFile (CopyDatabaseFile) - Access projesine eklenmiş geçerli Microsoft SQL Server 7.0 ve üstü veritabanını kopyalar;

OpenFunction - Bir Access projesinde kullanıcı tanımlı bir işlevi yürütür. Bu işlev, girdi parametrelerini kullanarak sonuçları saklı yordamla aynı şekilde döndüren bir sorgudur.

Makroların kullanımı, oluşturulmasının kolay olması gerçeğiyle doğrulanır ve bunun için programlama dilinin sözdizimini öğrenmenize gerek yoktur. Bir sonraki bölümde göreceğiniz gibi, bir makro oluşturmak için, yalnızca nesneleri pencereden sürükleyip bırakmak gibi Microsoft Access ve Windows'ta çalışmanın temel tekniklerini bilmeniz gerekir. Veri tabanı(Veritabanı) özel bir pencereye - makro oluşturucu(Makro Tasarımı), bir listeden bir eylem seçme ve ifadeleri bir makroya argüman olarak girme. Bu nedenle, gerçekten VBA dilinin sözdizimini öğrenmek istemiyorsanız veya çok zor görünüyorsa, makroları kullanmaktan çekinmeyin ve oldukça işlevsel bir uygulamaya sahip olacaksınız.

Yukarıda bahsedildiği gibi, makroların temel amacı uygun bir uygulama arayüzü oluşturmaktır: böylece formlar ve raporlar bir formdaki veya araç çubuğundaki düğmelere tıkladığınızda veya bir menü komutu seçerek açılır; böylece kullanıcı uygulamayı açtığında ekranda bir pencere değil Veri tabanı(Veritabanı), birçok tablo, sorgu, form ve raporla dolu, ancak istediğiniz eylemleri hemen gerçekleştirebileceğiniz bazı anlaşılır formlar vb.

Makroları kullanarak uygulamanız için uygun menüler ve araç çubukları oluşturabilirsiniz ve biraz sonra bunun nasıl yapılacağını açıklayacağız.

Ancak, makro kullanımının burada uygun olan bazı dezavantajları da vardır.

  • Makroların yetenekleri, VBA dilinin yetenekleriyle karşılaştırıldığında sınırlıdır, bu nedenle, bazı durumlarda, VBA'da programlama vazgeçilmezdir, ancak öncelikle bu ek yeteneklerin gerçekten gerekli olduğundan emin olmanız gerekir. VBA dili, verilerle çalışmak için daha zengin olanaklar sağlar, diğer uygulamalarla iletişim kurmak için nesne programlama mekanizmasını kullanmanıza, Windows dinamik yükleme kitaplıklarından (DLL'ler) işlevleri çağırmanıza ve kendi özel işlevlerinizi oluşturmanıza olanak tanır.
  • Makrolar, VBA prosedürlerinin kullanıldığı hemen hemen her yerde kullanılabilir, ancak VBA prosedürleri genellikle daha hızlıdır.
  • Makrolar, kullanıldıkları formlardan ve raporlardan ayrı olarak var olan nesnelerdir, bu nedenle bu nesneler çok olduğunda bakımları oldukça zahmetlidir. VBA olay rutinleri, formların ve raporların ayrılmaz bir parçasıdır ve bunun avantajları vardır. Örneğin, formları ve raporları bir veritabanından diğerine taşıdığınızda, ilgili prosedürler otomatik olarak onlarla birlikte aktarılır.

Bununla birlikte, daha önce belirtildiği gibi, birçok durumda makroların kullanımı oldukça haklıdır, çünkü bu, uygulamanın gelişimini büyük ölçüde basitleştirir ve hızlandırır. Makroları kullanarak küçük, tek kullanıcılı uygulamalar oluşturabilirsiniz, ancak VBA, uygulama hızının kritik olduğu çok kullanıcılı veya istemci/sunucu uygulamaları oluştururken daha iyi bir seçimdir.

Makro oluşturma

Microsoft Access'in makro oluşturmak için özel bir aracı vardır - Makro Tasarımı. Constructor kullanarak bir makro oluşturma sürecini ele alalım.

makro oluşturucu

Açık pencere makro oluşturucu(Makro Tasarımı) yeni bir makro oluşturmanın iki yolu vardır:

  1. Penceredeki makro listesini genişletin Veri tabanı(Veritabanı) kısayola sol tıklayarak makrolar(Makrolar) ve tıklayın Oluşturmak(Yeni) pencerenin üst kısmında (Şek.11.1).
  2. Düğmedeki aşağı oku tıklayın Yeni nesne(Yeni Nesne) araç çubuğunda Veri tabanı(Veritabanı) ve öğeyi seçin Makro(Makro).

Makro Oluşturucu penceresi, Tablo Oluşturucu penceresine benzer şekilde yapılandırılmıştır, yani yatay olarak iki bölüme ayrılmıştır: açıklama paneli ve argümanlar paneli.

Tasarım penceresinin üst kısmı - açıklamalar paneli - birkaç sütundan oluşur. Varsayılan olarak, bu panel iki sütun görüntüler: Eylem ve Yorumlar. Açıklama paneli, makroyu oluşturan makroların sırasını tanımlamanıza olanak tanır.

Eylem sütunundaki satır, istediğiniz makroyu seçebileceğiniz bir birleşik giriş kutusudur.

Yorumlar sütunundaki satır, yapılacak eylemi açıklayan bir yorum girebileceğiniz basit bir metin alanıdır.

Eylem alanı doldurulduğunda, Makro Oluşturucu penceresinin altında, ilgili makronun bağımsız değişkenlerinin değerlerini girebileceğiniz Bağımsız Değişkenler paneli görünür. Bu paneldeki alanların listesi seçilen makroya bağlıdır ve makronun bağımsız değişkeni yoksa eksik olabilir. Böylece makro oluştururken her bir makro için argüman listesini hatırlamanıza gerek kalmaz.

İncirde. 11.1 ApplyFilter makrosunun seçimini gösterir. Argümanlar panelinde, filtre adını ve kayıtları seçme ölçütlerini belirtmenize izin veren iki alan bulunur. Kayıtları seçmek için bir koşul ayarlamak için İfade Oluşturucu'yu kullanabilirsiniz. (bkz. bölüm "İfade Oluşturucu kullanarak ifadeler oluşturma" bölüm 4).

İncir. 11.1. Makro Oluşturucu ve Bağımsız Değişkenler Paneli

Bu makro, görüntülenen kayıt sayısını sınırlamak için bir formda veya raporda kullanılabilir.

Yorum Yap

Tasarım modunda tablolar ve sorgularla çalışırken olduğu gibi, açıklama ve argüman panelleri arasında hızla geçiş yapmak için tuşunu kullanabilirsiniz. .

Makro girmenin çok basit başka bir yolu daha var. Northwind uygulamasında Müşteriler formunu açmak için bir makro oluşturmak istediğinizi varsayalım. Bunun için pencerede Veri tabanı(Veritabanı) kısayoluna tıklamanız gerekiyor Formlar(Formlar), ardından araç çubuğunu kullanarak (yöntem 2) pencereyi açın makro oluşturucu(Makro Tasarımı) ve Müşteriler formunu Makro Tasarımcı penceresinin Eylem alanına sürükleyin.

Tavsiye

Veritabanı penceresinden forma nesneleri sürükleme kolaylığı için Pencere, Dikey Döşe komutunu seçerek pencereleri ekranda yan yana sıralayın.

Ardından, Eylem alanında OpenForm makrosu otomatik olarak görünür (Şekil 11.2) ve alanlar bağımsız değişkenler panelinde otomatik olarak doldurulur: Form Adı alanı, "Görünüm" alanında Müşteriler formunun adını görüntüler - Formun (Form) varsayılan değeri, "Pencere Modu" alanında - değer Yaygın(Normal). Kalan alanlar boş kalacaktır. Aynı makroda, kayıtları seçmek için bir filtre ayarlayabiliriz. Bunu yapmak için, "Filtre Adı" alanına bir filtrenin adını girin, örneğin sorguları incelerken oluşturduğumuz "Satış Yöneticileri" ("Filtreden sorgu oluşturma" bölümüne bakın, Bölüm 4).

Ek olarak, bu formdaki girişleri, alanda yapılan değişiklikler için erişilemez hale getirebilirsiniz. veri modu(Veri Modu) değeri girilmelidir sadece okuma(Sadece oku).

İncir. 11.2. Nesneleri sürükleyip bırakarak otomatik makro oluşturma

Benzer şekilde, pencereden sürükleyerek makrolar oluşturabilirsiniz. Veri tabanı(Veritabanı) tablolar, sorgular, raporlar ve diğer makrolar. Bu durumda, Makro Tasarımcısı penceresinde ilgili makrolar görünecektir: OpenTable (OpenTable), OpenRequest (OpenQuery), OpenReport (OpenReport), RunMacro (RunMacro).

Bir makro için bağımsız değişkenler girmek için genellikle listelerden değerler seçmeniz veya ifadeler girmeniz gerekir. İfade girmek için, düğmesi argüman alanının sağında bulunan İfade Oluşturucu'yu kullanabilirsiniz. Araç çubuğunda başka bir İfade Oluşturucu düğmesi bulunur. Diğer durumlarda olduğu gibi, ifadenin önüne bir eşittir işareti (=) gelmelidir. İstisnalar argümandır ifade(İfade) makroları Set değeri ve argüman Tekrar sayısı(Tekrar Sayısı) Makro-RunMacro (RunMacro). Bu argümanların değerini belirten bir ifadenin önüne eşittir işareti girerseniz, iki kez değerlendirilir ve bu da istenmeyen sonuçlara yol açabilir.

Bir makro komutuna argüman olarak bir veritabanı nesnesinin adını belirtmeniz gerekiyorsa, klavyeyi kullanarak girebilir, açılır listeden seçebilir veya nesnenin adını nesnenin dışına sürükleyerek belirtebilirsiniz. veritabanı penceresi.

Yani oluşturduğumuz makro Müşteriler formunu Salt Okunur modunda açacak ve içinde sadece satış yöneticilerini gösterecek. Daha önce belirtildiği gibi, bir makro birkaç makrodan oluşan bir dizi içerebilir. Bu nedenle, aynı makroda, bir sonraki satırda, formu açtıktan sonra, formda hangi istemcilerin sunulduğu hakkında bir mesaj içeren bir iletişim kutusu görüntüleyen Mesaj makrosunu (MsgBox) seçeceğiz. Bunu yapmak için alana girin İleti(Mesaj) argümanlar panelinde mesajın metni, örneğin Satış yöneticileri filtresi yüklenir, geri kalan alanlar değişmeden bırakılabilir. argüman sinyal(Fan), mesaja bir bip sesinin eşlik edip etmeyeceğini belirler. argüman bir tür(Tür) mesaj iletişim kutusunun görünümünü tanımlar. argüman Başlık(Başlık), mesaj kutusunun başlığında görüntülenecek metni ayarlamanıza olanak tanır.

Veritabanı büyükse, formdaki kayıtların seçilmesi biraz zaman alabilir, bu nedenle verilerin işlenmekte olduğunu belirtmek için ekranda bir kum saati imlecinin görüntülenmesi önerilir. Bunu yapmak için Kum Saati makrosunu kullanacağız. Bir makrodaki makrolar, Eylem sütununda yazıldığı sırayla yani yukarıdan aşağıya doğru yürütülür. Form görüntülenmeden önce imlecin değişmesi gerektiğinden, Kum saati makrosu önce yerleştirilmelidir. Bu nedenle, açıklama bölmesine yeni bir satır eklememiz gerekiyor. Bunu yapmak için imleci panelin ilk satırına getirin ve düğmesine basın. Satır ekle(Satır Ekle) araç çubuğunda veya sadece tuşunda ... Boş bir satır görünecektir. Bu satırda, Eylem alanında Kum Saati makrosunu seçin. Bağımsız Değişkenler panelindeki Kum Saati Açık alanı, varsayılan olan ve istediğimiz şey olan Evet'i gösterecektir. Fare işaretçisinin orijinal görünümünü geri yüklemek için, oluşturulan makronun sonunda aynı makroyu Kum Saati'ni girmeniz gerekir, ancak No (No) argümanı değeriyle etkinleştirme(Kum Saati Açık).

Açıkçası, mesajı ekranda görüntülemek için bu makroyu makronun önüne koymak daha iyidir. Makrolar fare ile kolayca değiştirilebildiği için bunu yapmak çok kolaydır. Yerlerde son iki makroyu takas etmek için, çizgi seçim alanına (Tasarım penceresinde solda) sol tıklayarak son satırı seçin ve çizgiyi yukarı sürükleyin. Yatay çizgi, çizginin yeni konumunu gösterir. Bu çizgi sondan bir önceki çizginin üzerine geldiğinde fare düğmesini bırakın.

Şimdi geriye sadece oluşturulan makroyu kaydetmek kalıyor. Bunu yapmak için menüden seçim yapabilirsiniz. Dosya(Dosya) komutu Farklı kaydet(Farklı Kaydet) veya tuşuna basın ... Makro kaydet penceresi görünecektir. Satış Yöneticileri gibi Access nesnelerinin adlandırma kurallarına uyarak giriş kutusuna makro için bir ad girin.

Yorum Yap

Microsoft Word ve Excel'de otomatik makro kayıt araçları bulunur. Bu araçlar, makro kaydını başlatarak, gerekli işlemleri gerçekleştirerek ve kaydı durdurarak otomatik olarak bir prosedür oluşturmanıza izin verdiği için VBA öğrenmek için çok uygundur. Ardından, kayıt açıldıktan sonra ve durdurulmadan önce gerçekleştirilen tüm kullanıcı eylemleri VBA prosedürünün metnine dönüştürülür. Bu metin daha sonra VBA düzenleyicisi kullanılarak görüntülenebilir ve düzenlenebilir. Microsoft Access'te otomatik bir makro kaydedici yoktur, tıpkı otomatik VBA kod oluşturma araçları olmadığı gibi (sihirbazların oluşturduğu hariç).

Makro grupları oluşturma

Makro kullanarak bir uygulama geliştirirken makro sayısı çok fazla olabilir. Bu nedenle, gerekli makrolara erişimi iyi organize etmek önemlidir. Bunun için bir nesnede Makro(Makro) birden fazla makro birleştirilebilir. Örneğin, bir form veya rapordaki olaylarla ilişkili tüm makroların, bu form veya rapora karşılık gelen ayrı bir nesnede birleştirilmesi önerilir. Bunu yapabilmek için her grup makrosunun kendi adına ve nesnenin adına sahip olması gerekir. Makro(Makro), makro grubunun adı olacaktır.

Bir makro grubu oluşturmak için:

  1. Önceki bölümde açıklanan yöntemlerden birini kullanarak Macro Designer'ı açın.
  2. Düğmeye bas makro adları(Makro Adı) araç çubuğunda. Yapıcı penceresindeki açıklama panelinde başka bir sütun görünecektir - “Makro Adı” (Şekil 11.3).
  3. Bu sütuna ilk makronun adını girin. Bu satırın geri kalan alanlarını boş bırakmak daha iyidir - bu, makroları taşımayı ve kopyalamayı kolaylaştıracaktır.
  4. Sonraki satırdan başlayarak, makro için tüm makroları ve her makro için karşılık gelen bağımsız değişkenleri girin.
  5. Bir satır atla.
  6. Her makro için 3-5 arasındaki adımları tekrarlayın.

İncir. 11.3. Makro grubu oluşturma

İncirde. 11.H Tasarım penceresinde veritabanının (Northwind) bir "Çalışanlar" makrosu vardır. Bir makronun sonunu belirtmek için ayrı bir makro gerekmez. Access, Makro Adı sütununda adı içeren bir satır bulana veya Makro penceresindeki son satıra ulaşana kadar makroyu grupta çalıştırmaya devam eder.

Bir makro işlenirken boş satırlar yoksayılır, bu nedenle bir gruptaki makroları ayırmak için kullanımları uygundur. Bu teknik ve çok sayıda makrodan oluşan karmaşık makrolar için yorumların eklenmesi, makroların okunabilirliğini iyileştirebilir.

Grup makrolarından birini çalıştırmak için, makroya atıfta bulunmak için tam ad kullanılır. Bir makronun tam adı şu şekilde oluşturulur: GrupAdı.MakroAdı.

Yorum Yap

Sistemi, sütunun makro adı(Makro Adı) her zaman Makro Tasarımcısında görüntülenir. Bunu yapmak için, sekmede uygun parametreleri ayarlamanız gerekir. Görünüm(Görünüm) iletişim kutusunda parametreler(Seçenekler) (bkz. "Access uygulamasının parametrelerini ayarlama" bölüm 14).

Makrolarda koşulları uygulama

Daha önce verdiğimiz makro örneklerinde makroların sıralı çalışma sırası kullanılmıştır. Ancak, herhangi bir programda olduğu gibi, bir makrodaki makroların çalışma sırası değiştirilebilir. Bunun için, makroları yürütme veya atlama koşulları tanıtılır. Bu koşullar, düğmeye basıldığında Makro Tasarımcı penceresinde görünen özel bir sütunda ifadeler şeklinde ayarlanır. Koşullar(Koşullar) araç çubuğunda (şekil 11.4).

Yorum Yap

Makro gruplarında olduğu gibi, sistem ayarlarınızı bu sütunun her zaman Makro Tasarımcısında görünecek şekilde yapılandırabilirsiniz.

İncir. 11.4. Makrolarda koşulları uygulama

İncirde. 11.4, zarflara çıkartma şeklinde bir rapor yazdırmak için kullanılan "Müşteri Etiketi İletişim Kutusu" makro grubu için Oluşturucu penceresini gösterir. Ayrıca, tüm müşteriler için tek seferde veya listeden seçilen bir ülkenin müşterileri için çıkartma yazdırabilirsiniz. Pencere, Koşul sütununu görüntüler. Bu sütunda belirtilen koşul doğruysa, bu satırdaki makro yürütülür. Koşul yanlışsa, karşılık gelen makro atlanır ve sonraki makro yürütülür.

Koşul doğruysa, aynı anda birkaç makronun yürütülmesi gerekiyorsa, ilki dışındaki tüm makrolar için Koşul sütununa bir üç nokta (...) konur. Kontrol edilecek koşul, ilk makro komutunun satırına yazılır. Ardından, eğer doğruysa, bu koşuldan belirli bir koşula sahip bir sonraki makroya, bir sonraki makroya veya makronun sonuna kadar tüm makro kümesi yürütülür. Koşul yanlışsa, belirtilen koşula sahip makro da dahil olmak üzere üç nokta ile işaretlenen tüm komutlar atlanır. Ardından, eksik olanları takip eden makro komutu yürütülür ve yeni bir koşul bulunur veya Koşul alanı doldurulmaz. Bu nedenle, “çoğu programlama dilinden farklı olarak, makrolarda alternatif dallanma yoktur. İki alternatif dallı bir makro oluşturmak için önce bir koşul girmeli ve bu koşul karşılandığında çalıştırılacak makroları tanımlamanız gerekir. Hemen ardından, karşıt koşulu belirtmeli ve alternatif dalda yürütülen makroları tanımlamalısınız. Ardından koşulsuz olarak yürütülen makroları girebilirsiniz. Bu dallanma yöntemi, örneğin, düğmeyle ilişkili Önizleme makrosunda kullanılır. Görünüm(Önizleme) bu formda. Kullanıcı seçeneği seçtiyse tüm ülkeler için(AH Ülkeleri), kontrolün 1 değeri ile belirlenir Etiketleri Yazdırma(PrintLabelFor), rapor Önizleme modunda açılır ve form kapanır. radyo düğmesi seçilirse belirli bir ülke için(Belirli Ülke) ”ve hiçbir ülke seçilmezse (Ülke Seç birleşik giriş kutusunun değeri ayarlanmaz), bir mesaj görüntülenir, ülke seçimi birleşik giriş kutusuna odaklanılır ve makronun çalışması durur. Ülke belirtilirse, seçilen ülke için rapor görüntülenir ve form kapatılır.

Bu makro StopMacro makrosunu kullanır. StopMacro makrosunu sırayla takip eden tüm makrolar yürütülmezken, makronun yürütülmesini durdurmanıza olanak tanır.

Yorum Yap

StopMacro makrosunu, yalnızca bazı koşullar altında yürütülmemesi gereken diğer makrolar tarafından takip ediliyorsa kullanmak mantıklıdır. Yukarıda belirtildiği gibi, bir makronun sonunu belirtmek için özel bir makro gerekmez.

Makroları Yürütme ve Hata Ayıklama

Makroları çalıştırmanın birçok yolu vardır. Bunların arasında, makronun doğrudan kullanıcı tarafından çalıştırılmasının doğrudan yolları vardır. Bu yöntemler genellikle makroları test ederken kullanılır. Makroda hata ayıklandığında, araç çubuğunda özel bir menü komutu veya düğmesi oluşturun ya da makroyu bir form veya rapordaki bir olayla ilişkilendirin. Bu bölümde, bir makro çalıştırmanın tüm olası yollarına bakacağız.

Bir makroyu çalıştırmanın evrensel bir yolu, menü komutunu kullanmaktır (Araçlar, Makro, Makro Çalıştır) (Şekil 11.5).

Bu komutu seçtiğinizde görünen iletişim kutusunda, makronun tam adını, yani GrupAdı.MakroAdı (Şekil 11.6) belirtmeniz (listeden girin veya seçin) gerekir. Bu yöntem, makro penceresi, veritabanı penceresi veya örneğin Form Tasarımcısı gibi herhangi bir etkin pencereden bir makro yürütmenize olanak tanır.

İncir. 11.5.

İncir. 11.6. iletişim penceresi Makro çalıştırma

Makro Tasarımcısı penceresinden bir makro çalıştırma

Bu yöntem, yeni oluşturulmuş veya gözden geçirilmiş bir makroyu test etmek için kullanılır. Makro Tasarımcı penceresinde yalnızca bir makro varsa, çalıştırmak için düğmeye basmanız yeterlidir. Başlatmak(Çalıştır) araç çubuğunda veya komutu seçin Koşun, Adım adım(Çalıştır, Tek Adım) (ikinci yöntem, makroda hata ayıklamanıza izin verir). Ancak, birkaç makro varsa, bu düğmeyi veya komutu kullanarak gruptaki yalnızca ilk makroyu çalıştırabilirsiniz. Gruptan başka bir makro çalıştırmak için menü komutunu kullanmanız gerekir. Hizmet, Makro, Makro Çalıştır(Araçlar, Makro, Makro Çalıştır).

Bu makro çalıştırma yöntemini sık sık kullanıyorsanız, standart bir düğme ekleyerek araç çubuğunu özelleştirmek mantıklıdır. Başlatmak(Makroyu çalıştırın). Menü komutunu çalıştırmaya eşdeğerdir. Hizmet, Makro, Makro Çalıştır(Araçlar, Makro, Makro Çalıştır). (Araç çubuklarını özelleştirmek için, Bölüm 14'teki "Araç çubukları oluşturma ve değiştirme" bölümüne bakın.)

Veritabanı penceresinden bir makro çalıştırma

Bir pencereden makro çalıştırmak için Veri tabanı(Veritabanı) kısayolu tıklayın makrolar(Makrolar) nesne panelinde, listeden gerekli makroyu bulun ve üzerine çift tıklayın veya düğmesine basın Başlatmak(Çalıştır) pencere araç çubuğunda Veri tabanı.İkinci yöntem, yalnızca seçilen nesne bir makro içeriyorsa uygundur. Aksi takdirde, yukarıda açıklanan bir makroyu yürütmek için evrensel yöntemi kullanmanız gerekir.

Yorum Yap

Makroların koşulları veya bağımsız değişkenleri Access nesnelerine (formlar, raporlar vb.) başvurular içeriyorsa, makroyu çalıştırmadan önce açık olmaları gerekir, aksi takdirde hata iletileri alırsınız.

Araç çubuğundaki bir düğmeyi kullanarak makro çalıştırma

Makroları çalıştırmanın doğrudan yolları basittir, ancak en hızlısı değildir. Daha uygun ve daha hızlı yollar var. Bizim bakış açımıza göre, bir makro başlatmanın en uygun yolu, araç çubuğunda özel bir düğme oluşturmaktır. Doğru, Access'te birçok standart araç çubuğu vardır ve ekranda farklı çalışma modlarında ilgili paneller görünür. Bu nedenle, ihtiyacınız olan tüm düğmeleri yerleştirebileceğiniz özel bir araç çubuğu oluşturmak en mantıklısı. Ancak, standart bir araç çubuğuna özel bir düğme ekleme işlemi son derece basittir.

Standart Access araç çubuğuna bir düğme eklemek için:

  1. Araç çubuğuna sağ tıklayın ve içerik menüsünden komutu seçin özelleştirme(Özelleştirmek).
  2. özelleştirme(Özelleştir) sekmeyi genişlet Araç çubukları(Araç çubukları).
  3. Standart araç çubuklarından birinin kutusunu işaretleyin, örneğin Tablo modunda sorgu(Sorgu Veri Sayfası) ekranda görüntülenecek.
  4. İletişim kutusunu kapat özelleştirme(Özelleştir) düğmesine tıklayarak Kapat(Kapat).
  5. Kısayolu tıklayın makrolar Veri tabanı(Veritabanı) ve gerekli makroyu bulun.
  6. Makroyu fare ile araç çubuğuna sürükleyin Modda istek tablolar (Sorgu Veri Sayfası).

İncir. 11.7. Makro çalıştırmak için bir araç çubuğu düğmesi oluşturun

Yorum Yap

Uygulamanızdaki ana çalışma modu formlarla çalışıyorsa, araç çubuğuna makroları yürütmek için düğmeler yerleştirilebilir. Form modu(Form Görünümü).

Yeni bir düğme eklediğiniz araç çubuğunu ekrandan kaldırmak için araç çubukları alanına sağ tıklayın ve standart komut çubukları listesinde panel adının solundaki kutunun işaretini kaldırın (Şekil 11.8).

İncir. 11.8. Komut çubuklarının listesini içeren bağlam menüsü

Şimdi özel bir araç çubuğu oluşturmaya ve üzerine bir makro çağrı düğmesi yerleştirmeye bakalım.

  1. Kısayolu tıklayın makrolar(Makrolar) penceredeki nesne bölmesinde Veri tabanı(Veritabanı) ve gerekli makroyu seçin.
  2. Komutu seçin (Araçlar, Makro, Makrodan Araç Çubuğu Oluştur). Ekranda boş bir araç çubuğu belirir.
  3. Gerekli makroyu fareyi kullanarak bu panele sürükleyin.

Panelde tanıdık makro simgesine sahip bir düğme görünür. Düğme, oluşturulduğu makronun adıyla aynı adı alır.

Birkaç makroyu çağırmak için bir araç çubuğu oluşturmanız gerekiyorsa, bu makroları tek bir grupta birleştirmenizi öneririz (bir makro grubu oluşturmak önceki bölümde açıklanmıştır). Ardından menü komutunu çalıştırdığınızda Araçlar, Makro, Makrodan Araç Çubuğu Oluştur(Araçlar, Makro, Makrodan Araç Çubuğu Oluştur) gruptaki her makronun kendi düğmesi olacağı bir araç çubuğu oluşturulacaktır. Bu durumda, düğmeler ilgili makroların adlarını görüntüler. Yeni araç çubuğu, makro grubu adıyla aynı şekilde adlandırılır. Bu komutu, Müşteriler gibi Northwind veritabanındaki makro gruplarından birinde deneyin. İsteğe bağlı olarak, düğmelerdeki metni simgelerle değiştirebilirsiniz. Uygulama araç çubuklarının özelleştirilmesi ve özellikle düğmelerin panellerden çıkarılması ve panellerin kendilerinin kaldırılması, bu düğmelerin görünümünün değiştirilmesi hakkında ek bilgiler şurada sunulmaktadır:

Menü komutu kullanarak makro çalıştırma

Bir makroyu çalıştırmanın diğer bir yaygın yolu, onu özel olarak oluşturulmuş bir menü komutu kullanarak çalıştırmaktır. Makroları çalıştırmak için menü komutları oluşturma yöntemleri, araç çubuğu düğmeleri oluşturmak için kullanılanlara çok benzer. Örneğin, bunun için menü komutunu kullanabilirsiniz. Araçlar, Makro, Makrodan Menü Oluştur(Araçlar, Makro, Makrodan Menü Oluştur).

Özel menüler oluşturma ve yapılandırma hakkında daha fazla ayrıntı için, bkz. mezhep. "Komut çubukları oluşturma ve değiştirme" bölümü. on dört. Bu nedenle, bu bölümde bir makrodan menü komutu oluşturmayı düşünmeyeceğiz.

Klavye kısayolu kullanarak makro çalıştırma

Bir makroyu çalıştırmak için bir klavye kısayolu atayabilirsiniz. Bunu yapmak için özel bir makro grubu oluşturmanız gerekir - "Otomatik Tuşlar". Bu makro grubu, atadığınız her tuş kombinasyonu için karşılık gelen makroyu çalıştırmak için bir makro içermelidir. Northwind veritabanında "AutoK" eys makro grubuna bir örnek verilmiştir. Bu makro grubunu Tasarım modunda açın. Bir makro içerir (şekil 11.9). Makro adı bir kısayol kaydıdır +

Makronun kendisi, "Müşteri telefonları" makrosunu çalıştıran RunMacro adlı bir makrodan oluşur. Yazdır ”(Müşteri Telefon Listesi.Yazdır). "Oto Tuşlar" makrosu, kullanıcı aşağıdaki gibi özel tuş kombinasyonlarını her girdiğinde görüntülenir. +

Girilen tuş kombinasyonu "Oto Tuşlar"da bulunursa, ilgili makro başlatılır.

İncir. 11.9."Oto Tuşlar" makrosuna bir örnek

Bu makro başlatma yöntemi kesinlikle en hızlısıdır, ancak önemli bir dezavantajı vardır: çok az sayıda ücretsiz tuş kombinasyonu vardır. Ve "Oto Tuşlar"da tanımlanan kombinasyonlar standart olanlardan daha yüksek önceliğe sahip olsa da (örneğin, +- kopyala), tuş kombinasyonlarının standart atamasının değiştirilmesi önerilmez. İzin verilen tuş kombinasyonları tabloda gösterilmiştir. 11.2. Tuş kombinasyonları bu durumda, menü komutlarını başlatmak ve düğmelere basmak için kullanıldıklarından uygulanmazlar.

Tablo 11.2.İzin verilen tuş kombinasyonları

Veritabanı açarken makro çalıştırma

Bir Microsoft Access veritabanını açtığınızda, bazı eylemler gerçekleşebilir. Çoğu zaman bu, Ana Düğme Formu adı verilen özel bir formu açar, özel menüleri veya araç çubuklarını gösterir, standart menüleri gizler, vb. Bu eylemleri tanımlamak için iletişim kutusunu kullanın. Başlatma parametreleri(Başlamak). Ancak bazen bir uygulamayı başlatırken bu iletişim kutusunun izin verdiğinden daha karmaşık bir dizi eylem gerçekleştirmek gerekir. Örneğin, birkaç formu önceden açmanız (ekranda göstermeden) gerekebilir, böylece daha sonra görüntülenmesi, bazı koşulları kontrol etmesi veya bazı verileri istemesi fazla zaman almaz. Bütün bunlar "AutoExec" adlı özel bir makro kullanılarak yapılabilir. Veritabanını açtığınızda, Access bu makroyu denetler ve varsa çalıştırır. Bir "AutoExec" makrosu oluştururken, Access'in önce pencerede tanımlanan eylemleri gerçekleştireceğini unutmayın. Başlatma parametreleri(Başlangıç) ve ardından "AutoExec" makrosu gelir, bu nedenle çakışan eylemler olmamalıdır.

Başka bir makrodan makro çalıştırma

Bazen başka bir makrodan bir makro çağırmanız gerekir. Bu, RunMacro makrosu kullanılarak yapılabilir. Bu makroyla daha önce "AutoKeys" makrosunu tanımlarken tanışmıştık. Burada bu makronun üç argümanı olduğuna dikkat edilmelidir: makronun adına ek olarak, makronun çalıştırılma tekrarı sayısı ve tekrarın koşulu ayarlanır. Böylece bu makro, döngüleri düzenlemenizi sağlar. argüman Tekrar sayısı(Repeat Count) makroya yapılan çağrıların sayısını ayarlar. argüman koşulu tekrarla(Tekrar İfadesi), Doğru veya Yanlış olabilen bir ifadedir. RunMacro makrosu çalıştırılmadan önce bu ifadenin değeri kontrol edilir. True ise makro yürütülür, False ise makro yürütülmez ve kontrol bir sonraki makro komutuna aktarılır. Bu iki bağımsız değişken verilmezse, makro yalnızca bir kez yürütülür. Bu bağımsız değişkenlerin her ikisi de verilirse, makro belirtilen sayıda yürütüldüğünde veya belirtilen koşul karşılanmadığında ve False olarak ayarlandığında çağrı döngüsü sona erer.

Yorum Yap

RunMacro makrosunun bağımsız değişkenindeki makronun adı tam olmalıdır, yani GrupAdı biçiminde olmalıdır. MakroAdı, çağrılan makro, arayan ile aynı grupta olsa bile. Tekrar koşulu her zaman doğru olacak şekilde ayarlanırsa, döngü sonsuzdur. Klavye kısayolu ile kesebilirsiniz +... Bu işe yaramazsa, klavye kısayoluna basarak Erişimi kesmeniz gerekecektir. ++.

Bir Olaya Makro Atama

Bir Access uygulamasında makroların en yaygın kullanımı, olayları işlemek içindir. Etkinlik - bir nesne tarafından tanınan herhangi bir eylemdir ve nesnenin bir olaya tepkisi belirlenebilir. Olaylar, kullanıcı eyleminin, VBA talimatlarının yürütülmesinin veya sistem tarafından oluşturulmasının bir sonucu olarak ortaya çıkar. Olaylara örnek olarak bir form, rapor görüntüleme, bir metin alanına veri girme veya bir fare düğmesine veya bir tuşa basılması verilebilir. Bu olayların her birine, meydana gelen bir olaya yanıt olarak otomatik olarak yürütülecek bir makro veya VBA prosedürü atanabilir. Access'teki hemen hemen tüm programlama, olayları işleyen, yani nesnelerin olaylara tepkisi programlanan makrolar veya prosedürler yazmaktan ibarettir. Nesnelerin tepki verdiği çok sayıda farklı türde olay vardır ve çoğu zaman bir değil, bütün bir olaylar dizisi vardır. Bu nedenle, oluşturduğunuz bir makroya veya VBA prosedürüne hangi olayın atanacağına karar verme konusunda biraz beceriye sahip olmanız gerekir. Bu seçimin tüm incelikleri tartışılacak tarikatta. "Formlarda ve raporlarda programlama" bölümü. 13. Burada sadece bir olaya nasıl makro atanacağını açıklayacağız ve makroları kullanarak olayların işlenmesine örnekler vereceğiz.

En basitinden başlayalım. Northwind veritabanında Müşteriler formunu açın. Bu form müşteri bilgilerini görüntüler. Diyelim ki sadece bu bilgiyi değil, müşterinin satın aldığı ürünlerle ilgili verileri de görmek istiyoruz. buton yapsan iyi olur Müşteri siparişleri, Tıklandığında, yalnızca Müşteriler formunda seçili olan müşteriden gelen siparişlerle birlikte Siparişler formu görünürdü. İstediğimizi elde etmek için olay gerçekleştiğinde yürütülecek bir makro oluşturacağız. Düğmeye basın(Tıklandığında) Müşteriler formunda.

Bir olaya açıklanan uygulama tepkisini tanımlayan bir makro oluşturmak için Düğmeye basın(Tıklamada):

  1. Müşteriler formunu Tasarım görünümünde açın.
  2. Formun başlık alanında bir düğme oluşturun. Bu durumda, araç çubuğundaki sihirbaz düğmesi serbest bırakılmalıdır, aksi takdirde bir makro değil, bir olay işleme prosedürü oluşturmanız istenecektir.
  3. Henüz açık değilse, az önce oluşturduğunuz düğmenin özellikler penceresini açın ve sekmeyi genişletin Etkinlikler(Etkinlik).
  4. Yalnızca komut düğmesiyle kaç farklı olayın ilişkilendirildiğine dikkat edin. Şimdi kullanacağımız olağan basma işlemine ek olarak, buton olayları kümesine odaklanma ve kaybetme, fareye çift tıklama, basitçe fare imlecini butonun üzerinde hareket ettirme vb. dahildir. Bu tür çeşitli olaylar geliştiriciye harika şeyler verir uygun bir kullanıcı arayüzü oluşturma fırsatları. Şimdi olayı listede bulun Düğmeye basın(Tıklandığında) ve imleci uygun hücreye konumlandırın. Bu bir birleşik giriş kutusudur ve şu anda boştur. Bu listeyi açarsanız, ilk öğesi () olacaktır ve ardından uygulamada mevcut tüm makroların bir listesi vardır (Şekil 11.10).
  5. İhtiyacımız olan makro listede olmadığı için onu oluşturalım. Bunu yapmak için alanın sağındaki Oluşturucu düğmesini tıklayın. Bir pencere görünecek inşaatçı(Oluşturucu Seçin), üç İnşaatçıdan birini seçmeyi teklif eder: İfade(İfade Oluşturucu), makrolar(Makro Oluşturucu) ve programlar(Kod Oluşturucu) (şek. 11.11).
  6. Lütfen seçin makrolar(Makro Oluşturucu) ve düğmesine tıklayın TAMAM MI.»Makro penceresi ve oluşturulacak makronun adını girmeniz gereken bir iletişim kutusu açılacaktır. Satış Siparişleri adını girin.

İncir. 11.10. Düğme Özellikleri İletişim Kutusu

İncir. 11.11. iletişim penceresi Geçiş sırası

  1. Makroya tek bir OpenForm makrosu eklemeniz gerekir. Bu makronun argümanlarının değerleri tabloda gösterilmiştir. 11.Z.

Tablo 11.3. Makro Bağımsız Değişken Değerleri OpenForm

argüman mod(Görünüm) formun açılması gereken modu tanımlar. Aşağıdaki değerleri alabilir: form(Form), yapıcı(Tasarım), Görünüm(Baskı Önizleme), tablo(Veri Sayfası), Pivot tablo(PivotTable) ve Pivot grafik(Özet Grafik). argüman Seçim koşulu(Koşul), formda görüntülenen kayıtları seçmek için bir koşul tanımlar. Koşul bir ifadedir. Bu durumda, bu ifade denetime bir bağlantı içerir. Müşteri kodu(CustomerlD) Müşteriler formunda, müşteri kimliğinin Müşteriler formunun MüşteriKimliği alanında belirtilen değere eşit olduğu Siparişler tablosundaki tüm kayıtları seçmenize olanak tanır. (Makrolarda ve ifadelerde başvuruları kullanma hakkında daha fazla bilgi için bu bölümün Makroları Kullanma bölümüne bakın.) argüman veri modu(Veri Modu) verilerle çalışmanın yolunu tanımlar ve aşağıdaki değerlerden birini alabilir: Ekleme(Ekle), Değişim(Düzenle) veya sadece okuma(Sadece oku). Son olarak, argüman Pencere modu(Pencere Modu) pencerenin türünü tanımlar: Yaygın(Normal), Görünmez(Gizli), Simge(Simge) ve diyalog penceresi(Diyalog).

  1. Makro penceresini kapatın ve değişikliklerinizi kaydedin. Alandaki düğmenin özellikler penceresinde Düğmeye basın(Tıklandığında) "Satış Siparişleri" makrosunun adı görünecektir.
  2. Biçim sekmesini genişletin ve girin İmza(Altyazı) düğme adı: Müşteri siparişleri. Alana aynı adın girilmesi önerilir. isim(Ad) sekmesi Diğerleri(Diğer).

Şimdi Form moduna geçmek ve makronun olayı nasıl çözdüğünü kontrol etmek kaldı. Düğmeye basın(Tıklamada). Herhangi bir yerde yanılmıyorsanız, ekranda Şekil 1'de gösterilene benzer bir resim görmelisiniz. 11.12.

İncir. 11.12."Siparişler" formu

Ancak, gerekli tüm adımları henüz tamamlamadık. Müşteriler formundaki bir sonraki kayda geçerseniz, Siparişler formundaki veriler artık durumu doğru şekilde yansıtmaz - değişmez. "Müşteriler" formundaki diğer kayıtlara geçişle bu verilerin eşzamanlı olarak değiştiğinden veya bu pencerenin basitçe kapandığından emin olmanız gerekir. İkinci seçeneğin uygulanmasını ele alalım. Düğmeye tıkladığımızda Siparişler formu açılır Müşteri siparişleri, ve aktif hale gelir. Müşteriler formu aktif hale geldiğinde kapatmak istiyorsunuz. Bunu yapmak için uygun olayı seçmeniz ve işlemek için bir prosedür veya makro ayarlamanız gerekir. bir pencere açarsan Özellikleri(Özellikler) "Müşteriler" (Müşteriler) oluşturur ve sekmeyi açar Etkinlikler(Etkinlik), ardından birçok etkinlik arasında bir etkinlik göreceksiniz. açılıyor(Etkinleştir açıkken). Tam da ihtiyacımız olan olay bu. Bu olayı seçeceğiz, ancak şimdi yeni bir makro grubu oluşturmayacağız, ancak Müşteriler formu için zaten makrolar içeren Müşteriler makro grubuna yeni bir makro ekleyeceğiz. Açılır listeden bu makro grubunu seçin ve Oluşturucu düğmesini tıklayın. İki makro görüntüleyen bir pencere açılacaktır. Onlara bir makro daha ekleyelim. Buna “Kapatma” diyelim ve uygun parametrelerle Kapat makro komutuna girelim (Tablo 11.4). Ancak formu kapatmadan önce açık olup olmadığını kontrol etmeniz gerekir. Bunu yapmak için, form açıksa True, aksi takdirde False döndüren isLoaded işlevini kullanacağız. Formun adı, isLoaded işlevine bir argüman olarak iletilmelidir. Yani, sütuna Durum(Koşul) Kapat makrosunun yanında IsLoaded (veya IsLoaded (Siparişler)) girin.

argüman Değer
Nesne türü Form (Formlar)
Nesne adı Emirler
Kayıt etmek Hayır hayır)

Tablo 11.4. Eylem Bağımsız Değişken Değerlerini Kapat

argüman koruma(Kaydet), formu kapattığınızda, değiştirilen verilerin kaydedildiğini onaylamak için Access'in bir iletişim kutusu görüntüleyip görüntülemediğini denetlemenize olanak tanır. Siparişler formunu salt okunur modda açtığımız için verileri değiştirmek yasaktır, bu nedenle bu argüman olarak ayarlanmalıdır. Değil(Hayır). Tamamlanan makro Şekil 2'de gösterilmektedir. 11.13.

Makro penceresini kapatın ve değişikliklerinizi kaydedin. Etkinliğe atanan makronun adını değiştirin açılıyor(Etkinleştir açıkken). Bunu yapmak için listeden seçin veya Müşteriler adını girin.Kapat ve tuşuna basın ... Şimdi formu kaydedin, Formlar moduna gidin ve oluşturduğunuz makroların nasıl çalıştığını kontrol edin.

İncir. 11.13. Bir formu kapatmak için makro

VBA prosedüründen bir makro çağırma

Daha önce de söylediğimiz gibi, Access'teki VBA prosedürleri ve makroları yakın ve çoğu zaman değiştirilebilir nesnelerdir, yani bir makro yerine bir VBA prosedürü kullanabilirsiniz ve bunun tersi de mümkündür. Bir VBA prosedüründen bir makro çalıştırmanın, bir makrodan bir VBA prosedürü çalıştırmanın yolları vardır ve Access, bir makroyu bir VBA prosedürüne dönüştürmenize izin verir. Bu dönüşüm şurada açıklanmıştır: mezhep. Bu bölümdeki “Makroları VBA Prosedürlerine Dönüştürme”.

Bir makrodan VBA prosedürü başlatmak için özel bir RunProgramme (KipCode) makrosu vardır. Bu makronun bir argümanı vardır, çağrılacak prosedürün adı, ancak bir alt program değil, yalnızca bir işlev çağrılabilir.

Bir VBA prosedüründen bir makro çalıştırmak için DoCmd nesnesinin özel RunMacro yöntemini kullanın, örneğin:

DoCmd.RunMacro "Makro!"

DoCmd nesnesi, Access makrolarını yürütmek için bir VBA prosedüründe kullanılır. Bu durumda, gerekli makronun İngilizce adı, örneğin prosedür satırı gibi DoCmd nesnesinin Yöntemi olarak belirtilmelidir.

DoCmd.OpenForm "İstemciler"

"Müşteriler" formunu açmanızı sağlar. Burada "İstemciler" makronun argümanıdır. Bağımsız değişkenler DoCmd yan tümcesinde virgülle ayrılmış olarak listelenir. Çoğu makro bu şekilde yürütülebilir.

Aşağıda VBA prosedürleri oluşturmayı düşüneceğiz. ch. 13.

Makrolarda hata ayıklama ve hataları bulma

Genellikle, bir makroda hata ayıklamak için adım adım modda gerçekleştirilir. Bu modu etkinleştirmek için düğmeye basmanız gerekir. Adım adım(Tek Adım) Makro Oluşturucu penceresindeki araç çubuğunda veya menü komutunu seçin Koşun, Adım adım(Koş, Tek Adım). Ardından, her bir makro komutunun yürütülmesinden önce (Makro Tek Adım) iletişim kutusu görünecektir (Şekil 11.14).

Bu pencere, makronun adını, yürütülebilir makronun adını, yürütme koşulunu ve bağımsız değişkenlerini görüntüler. Ayrıca, tarlalarda Durum(Durum) ve Argümanlar(Argümanlar) koşullu ifadenin değerleri ve makronun argümanları görünür. Makro satırında herhangi bir koşul belirtilmemişse, Koşul alanı her zaman değeri gösterecektir. Doğru(Doğru). Bu penceredeki alanların sağındaki düğmeler, bir sonraki makro komutunu yürütmenize, makro yürütmeyi kesmenize (örneğin, bağımsız değişkenlerin yanlış hesaplandığını görebiliyorsanız) ve yürütmeye her zamanki gibi devam etmenize, yani adımlar.

İncir. 11.14. iletişim penceresi Bir makronun adım adım yürütülmesi

Bir makronun yürütülmesi sırasında bir hata oluşursa, bir iletişim kutusu görüntülenir. Makro yürütme hatası(Eylem Başarısız), pencereye benzer Bir makronun adım adım yürütülmesi(Makro Tek Adım), ancak işleme devam etme yeteneği olmadan (düğmeler Adım(Adım) ve İlerlemek(Devam) mevcut değil). Düğmeye tıklayarak yalnızca makronun yürütülmesini durdurabilirsiniz. iptal(Dur). Pencerede hata içeren bir makro görüntülenir.

Makrolardaki hataları bulmak genellikle basittir. Bunun nedeni şudur:

  • çoğu sözdizimi hatası siz yazarken kontrol edilir ve sistem yanlış bir makro adı veya koşullu bir ifade girmenize izin vermez (ancak, var olmayan bir form veya bir formda kontrol);
  • makrolar kural olarak oldukça basittir ve uzun makro dizileri içermez, aksi takdirde VBA'da bir prosedür yazmak daha iyidir, çünkü VBA dili daha fazla olanak sağlar ve önemli ölçüde daha iyi hata ayıklama olanaklarına sahiptir.

Makrolarda meydana gelen ana hatalar, nesne adlarının yanlış girilmesi ve ardından Access'in karşılık gelen nesneyi bulamaması veya makro tarafından başvurulan nesnelerin mevcut olmaması, örneğin formun açık olmaması ile ilişkilidir. . Bu nedenle bir hata oluştuğunda öncelikle nesne adlarının doğru girilip girilmediğini ve makroların koşullarında veya argümanlarında kullanılan formların açık olup olmadığını kontrol etmeniz gerekir.

Tavsiye

Bir forma veya denetime yönelik bağlantıları kullanmadan önce, isLoaded () işlevini kullanarak formun açık olup olmadığını kontrol etmeniz önerilir. Ne yazık ki, bu özellik standart bir Access özelliği değildir, ancak genellikle Northwind veritabanının Yardımcı İşlev modülünde bulunur. Oradan veritabanınıza kopyalayabilirsiniz.

Hem prosedürlerde hem de makrolarda hata ayıklamak için standart teknik, sürecin belirli aşamalarının geçişini gösteren özel mesajları ekranda görüntülemektir. Makrolarda bu, bu tür mesajları görüntülemek için ek MsgBox makroları eklenerek yapılır. Ayrıca, mesajda kontrollerin özelliklerinin değerlerini görüntüleyebilirsiniz, örneğin: "Ürün fiyatı =" & Formlar! Ürünler! Fiyat

Karşılık gelen makroların karşısındaki Koşul sütununa False değerini girerek hata ayıklama mesajlarının görüntülenmesini kolayca kapatabilirsiniz.

Diğer bir yaygın hile, kesme noktaları ayarlamaktır. İşlem bitmeden önce belirli bir noktada bir makronun yürütülmesini durdurmak için kullanılır. Bunu yapmak için StopMacro makrosunu kullanın. Makro, StopMacro makrosundan önce çalışır, ardından sonuçları kontrol edebilirsiniz. Böylece hatayı makro hassasiyete kadar lokalize etmek mümkündür.

Makroları uygulama

Makrolar, çok çeşitli görevleri çözmek için kullanılabilir. Bu bölümün ilk bölümünde, kategorilere göre gruplandırılmış bir makro tablosu sağladık. Şimdi bazı kategorilerin makrolarının kullanımına bakalım.

Formlarda ve raporlarda verilerle çalışma

Bu kategori, verileri seçen, veriler arasında gezinen ve formlardaki verileri güncelleyen bir dizi makro içerir. Makro kullanma örneklerine geçmeden önce, bu tür referanslar çok sık kullanıldığından, makroların argümanlarında ve koşullarında formlara, raporlara ve kontrollere yapılan referansların nasıl kullanılacağını göstereceğiz.

Formlara, raporlara ve özelliklerine bağlantılar

Bir forma veya rapora başvuruda bulunmak için öncelikle başvurulan nesnenin hangi koleksiyona ait olduğunu belirlemeniz gerekir. (Aileler ve onları oluşturan nesneler hakkında daha fazla bilgi için 13. Bölüme bakın) Tüm açık formlar Formlar ailesindedir ve açık raporlar Raporlar ailesindedir. Bir formun veya raporun tam bağlantısı iki bölümden oluşmalıdır: AileAdı!NesneAdı. Ayrıca, nesne adı boşluk veya özel karakter içeriyorsa, köşeli parantez içine alınmalıdır. İsimde boşluk kullanılmazsa, parantezler atlanabilir. Böylece, formun bağlantısı şu şekilde görünecektir: Formlar! [Müşteri Siparişleri] VEYA Formlar! Müşteriler Rapor için bağlantılar benzer görünür:

Raporlar! [Satış raporu] VEYA Raporlar Fiyat listesi Bir form veya rapor özelliğine bağlantı üç bölümden oluşur: AileAdı NesneAdı.ÖzellikAdı Örneğin:

Formlar!Müşteriler.Görünür veya Raporlar![Dönem Satışları] .MenuBar Özelliği Ekrandaki çıktı(Görünür) formun ekranda görünüp görünmeyeceğini veya gizli olup olmayacağını belirler ve özellik Menü(MenuBar), özel bir menüyü bir rapor veya formla ilişkilendirmenize olanak tanır.

Formların, raporların ve özelliklerinin kontrollerine bağlantılar

Bir denetime veya özelliğine bağlanmak için adını belirtmeniz gerekir. Ad boşluk içeriyorsa, köşeli parantez içine alınır. Bir form veya rapordaki bir denetime bağlantı üç bölümden oluşur:

AileAdı!NesneAdı!ElemanAdı

Formlar! [Müşteri Siparişleri]! [Sipariş Numarası]

Raporlar! [Döneme ilişkin satışlar]! [Tutar]

AileAdı!NesneAdı!ÖğeAdı.ÖzellikAdı

Örneğin:

Formlar! [Müşteri Siparişleri]! [Sipariş Numarası] .Etkin

Emlak Giriş(Etkin), kontrole erişimi reddetmenize veya izin vermenize olanak tanır.

Bir nesnenin varsayılan bir özelliği olabilir. Bu özellik, özellik adı bağlantıda açıkça belirtilmediğinde kullanılır. Örneğin, kontroller varsayılan özelliğe sahiptir Değer(Değer), bu nedenle Formlar bağlantısı! Ürün:% s! Fiyat, Fiyat metin kutusunda görüntülenen değere erişmenizi sağlar.

Alt formlara ve raporlara bağlantılar

Alt form ve alt rapor tek bir denetim türü olduğundan, bir alt forma veya rapora diğer denetimlerle aynı şekilde başvurabilirsiniz. Örneğin:

Formlar!Siparişler!

Burada SubformProducts, bir alt form olan Siparişler formundaki kontrolün adıdır.

Ancak bir alt formdaki veya rapordaki bir kontrole olan bağlantının özel bir yapısı vardır: bir alt form olan kontrolün adından sonra, önce özel bir özellik belirtmelisiniz: Form - formlar için veya Rapor - raporlar için ve ardından ad yürütüldüğü kontrolün bağlantısı:

Formlar Siparişler ÜrünlerAltform.Form [Ürün Kodu]

Formlarda, raporlarda, tablolarda kayıtları filtreleme

Access makrolarını kullanma örneklerine geçelim. Formlarda, raporlarda, tablolarda kayıtları seçmek için ApplyFilter makro komutunu kullanın. Bir filtreyi tanımlamanın iki yolu vardır: ya bağımsız değişkende önceden oluşturulmuş bir filtrenin adını belirterek Filtre adı(Filtre Adı) veya bağımsız değişkende seçim koşulunu doğrudan belirterek Seçim koşulu(Nerede Durum). Formun açılmasından hemen sonra filtrenin uygulanması gerekiyorsa, olayla birlikte Açılış(Açıldığında) form, ApplyFilter makrosunu içeren bir makroyu bağlamalıdır. Açık bir formda görüntülenen kayıt kümesini dinamik olarak değiştirmeniz gerekiyorsa, aşağıdakileri yapın:

  • bu formda, seçim koşullarını ayarlayabileceğiniz bir dizi alan oluşturun;
  • bir düğme oluştur Filtre uygula, ApplyFilter makrosunu içeren makronun ilişkilendirileceği. Argüman değeri olarak Seçim koşulu(Nerede Koşul) bu makro için bu alanlara referanslar içeren bir ifade belirtir.

Böyle bir çözümün bir örneği Şekil 2'de gösterilmektedir. 11.15. Bu şekil, çeşitli kriterlere dayalı bir seçimle ürünlere göz atmanıza olanak tanıyan Ürünler formunu göstermektedir.

Bu form, Otomatik Şerit Formu Sihirbazı kullanılarak Ürünler tablosundan oluşturulmuştur. Ardından, Form Tasarımı modunda, seçim kriterlerini ve filtreyi uygulamak ve iptal etmek için düğmeleri tanımlamak için alanlar eklenir. Olayla ilişkili karşılık gelen makrolar Düğmeye basın(Tıklandığında) Şek. 11.16. Filtreyi iptal etmek için ShowAllRecords makro komutunu kullanın.

İncir. 11.15. Belirtilen kriterlere göre kayıt seçme formu


İncir. 11.16."Ürünler" formunda bir filtreyi ayarlamak ve iptal etmek için makrolar

İncirde. 11.16 iki makro sunar: Filtre Ayarla ve Filtreyi İptal Et. iletişim kutusunda Giriş alanı(Yakınlaştır) bağımsız değişkenin değeri görüntülenir Seçim koşulu ApplyFilter makrosunun (Nerede Koşul). Lütfen koşulun oldukça karmaşık olduğunu ve alan uzunluğunun Seçim koşulu(Koşul) 255 karakterle sınırlıdır. Bu nedenle, seçim koşullarına bir alan daha eklersek, örneğin "Teslimatlar durduruldu", ayrıca özel bir filtre oluşturmamız ve argümanda adını ayarlamamız gerekir. Filtre adı(Filtre Adı).

"UndoFilter" makrosunda ShowAllRecords makrosuna ek olarak "SupplierSelect" ve "TypeSelect" alanlarını temizlemek, yani onlara bir değer atamak için iki makro daha gereklidir. Boş(Boş). Bu, SetValue makrosu kullanılarak yapılır.

Veriler arasında gezinme

Bu makro grubu, kayıtlar ve kontroller arasında gezinme ile ilişkilidir. Bu grubun makrolarını kullanma örneği olarak, bir kullanıcının "Müşteriler" formuyla çalıştığı ve numarasını bildiği mevcut müşteriden bir sipariş bulmak istediği bir durumu düşünün. Verilen örneğe geri dönelim mezhep. "Bir Olaya Makro Atama". Ardından "Müşteriler" formunda bir buton oluşturduk. Müşteri siparişleri seçilen müşterinin siparişlerini görüntülemek için. Bu formları geliştirmeye çalışalım. Kullanıcı sipariş numarasını biliyorsa metin alanına girebilir. Sipariş arama, Müşteriler formuna eklenebilir. Ardından açılan "Siparişler" formunda ilgili faturayı içeren kaydı hemen göstermelisiniz. Formun başlığına “Sipariş ara” alanını ekleyelim ve “Siparişler” formu açıldığında bu alanın değerinin kontrol edilmesini ve boş değilse belirtilen numara ile faturanın gelmesini sağlayalım. aranacak ve ilgili kayda geçiş yapılacaktır. Aksi takdirde, filtrelenmiş kayıt kümesindeki ilk kayıt geçerli kayıt olur. İncirde. Şekil 11.17, yeni bir alan ve Siparişler formunun Yüklendiğinde olayıyla ilişkili Sipariş Bul makrosu içeren Müşteriler formunu gösterir.

Eklenen olay makrosu Müşteriler formundaki bir kontrole atıfta bulunduğundan, sadece form açıkken çalıştırılmalı ve ayrıca arama sadece Sipariş Arama alanı boş değilken yapılmalıdır... Buna dayanarak, makronun koşulları oluşturulur. Alanlardan birinde desene göre bir kayıt aramadan önce, KElementControl makrosunu (GoToControl) kullandığınız bu alanı etkinleştirmelisiniz. Odağı Orderld alanına ayarlar. Ancak bu alan Siparişler formunda mevcut değildir, bu nedenle önce mülkün değerini değiştirmeniz gerekir. Giriş(Etkin) bu alan. Aksi takdirde, GoToControl makrosunun yürütülmesi bir hataya neden olacaktır.

KElementControl (GoToControl) makrosu, kural olarak, "formdaki alanlar arasındaki standart geçiş sırasını değiştirmek istiyorsanız kullanılır. Genellikle alanlar arasındaki geçiş, anahtar kullanılarak yapılır.<Таb>ancak bazen bir dizi alanı atlamak ve odağı belirli bir denetime taşımak istersiniz. Bu, bir alanın değeri gibi bazı koşullara bağlı olabilir. Bu durumda olay Güncellemeden sonra(Güncellemeden sonra) bu prlya için odağı formda istenen kontrole taşıyan bir makro atanır. Denetimin kısa adı, makronun bağımsız değişkeni olarak belirtilmelidir. Ad çok uzunsa, kontrole navigasyon yapılmayacak ve bir hata mesajı görüntülenecektir.

İncir. 11.17. Verilerde Gezinmek için Örnek Makro

Formlardaki ve kontrollerdeki verileri yenileme

Bu kategorideki son makro grubu, etkin formlardaki, tablolardaki ve sorgulardaki verilerin güncellenmesiyle ilgilidir. Ağdaki birkaç kişi aynı anda verileri değiştirirse, belirli bir kullanıcı için formlar ve tablolar gerçek verileri yansıtmayabilir. Görüntülenen verilerin veritabanının mevcut durumuna karşılık gelmesi için komutu kullanılarak güncellenmesi gerekir. Gönderiler, Güncelleme(Kaydet, Yenile) (Kayıtlarla çalışma bölümüne bakın, Bölüm 2).

Bir form, veri kaynağı bir tablo veya sorgu olan bir birleşik giriş kutusu kullandığında, tek kullanıcı modunda bile benzer bir durum oluşur. Orijinal tabloya kayıtlar eklendiyse, açılan kutuda otomatik olarak görünmezler - sorguyu yeniden çalıştırmanız gerekir. Açılan kutulara ek olarak, görüntülenen verileri güncellemesi gereken kontroller ayrıca listeleri ve alt form kontrollerini, OLE nesnelerini ve DLookUp() veya DSum() gibi bir kayıt alt kümesinde toplama işlevlerini içeren hesaplanmış kontrolleri içerir.

Formlardaki, tablolardaki veya kontrollerdeki kayıtları güncellemek için Requery, ShowAllRecords ve RepaintObject makrolarını kullanın.

Güncelleme makrosu (Requery), veri kaynağını yeniden ziyaret ederek veritabanı nesnesindeki verileri yeniler. Makronun, güncellenecek nesnenin adını içeren bir bağımsız değişkeni vardır. Form gibi aktif bir nesneyi güncelliyorsanız, argüman alanı boş bırakılmalıdır. Bu durumda makro, özellikte belirtilen isteği yeniden yürütür. Veri kaynağı(RecordSource) bu formun.

Verileri güncellemek için bir makro kullanma örneğine bakalım. Müşteriler formunda bir Ülke birleşik giriş kutusu bulunur. Bu alan için veri kaynağı, Müşteriler tablosunun Ülke alanından değerleri getiren bir sorgudur:

Müşterilerden FARKLI Müşteriler.Ülke SEÇİN;

Bir müşteri girerken tabloya yeni bir ülke adı eklenirse, sorgu yalnızca formun bir sonraki açılışında yeniden yürütüleceğinden bu ülke listede görünmez. Ülke listesini daha önce güncellemek için bir etkinlik atamanız gerekir. Güncellemeden sonra(Güncellemeden sonra) Form Makro İstemcileri Bir makro komutundan oluşan Ülkeler listesini Güncelleme (Requery) "Ülke" bağımsız değişkeninin değeri ile güncelleme (Şekil 11.18).

İncir. 11.18. Bir Form Etkinliğine Makro Atama Güncellemeden sonra

Yorum Yap

Yeniden Sorgulama makrosu yalnızca bir nesneyi günceller, bu nedenle formda görüntülenen verilerin güncellenmesini gerektiren denetimler varsa ve bu forma atanan makro Yeniden Sorgulama makrosunu boş bir bağımsız değişken değeriyle kullanıyorsa, yalnızca formdaki kayıtlar güncellenecek. Bu tür her kontrol için ayrı bir makro kullanılmalıdır. Bu makro, argüman olarak bir kontrolün adını içeriyorsa, yürütüldüğünde yalnızca bu kontrol güncellenir. Formdaki girişler güncellenmez.

Güncelle makrosunu (Requery) kullanarak, makronun atandığı formda değil, daha doğrusu etkin olmayan bir formdaki verileri güncelleyebilirsiniz. Ancak bu durumda önce, etkinleştirmek için odağı istenen forma aktaracak olan SelectObject makrosunu çalıştırmanız gerekir (daha sonra odağı geri döndürebilirsiniz).

Tüm Kayıtları Göster makro eylemi, belirtildiği gibi, filtreyi iptal eder ve kayıtların kaynağını yeniden görüntüler. Genellikle bir alt formdaki verileri güncellemek için kullanılır.

Makro Nesneyi Yeniden Boya eylemi yalnızca bir veritabanı nesnesine (tablo, sorgu, form, rapor, sayfa, makro ve modül) uygulanır ve bir denetime uygulanmaz. Belirtilen açık nesneyi hemen günceller (nesne adı belirtilmemişse, etkin nesne güncellenir), ancak sorguyu veri kaynağına karşı yeniden yürütmez. Nesnenin yenilenmesi etkilemez. Güncelleme makrosu (Requery) yürütülürken olduğu gibi yeni ve silinen kayıtların görüntülenmesi. Genellikle RepaintObject makrosu, SetValue makrolarını kullanarak veri değişikliklerinin sonuçlarını görüntülemek ve hesaplanan kontrollerdeki ifadelerin değerlerini yeniden hesaplamak için kullanılır.

nesnelerle çalışma

Öncelikle formlarda ve raporlarda kontroller için özellik değerleri belirlemenizi sağlayan SetValue makrosunun nasıl kullanıldığına bakalım. Bu makroyu önceki örneklerde zaten kullandık.

Kontrollerin özelliklerini ayarlamak, koşullara bağlı olarak dinamik olarak bu kontrolleri erişilemez veya görünmez yapmanıza olanak tanır. İşte bazı örnekler.

  • Belirli koşullara bağlı olarak farklı alanların görüneceği bir form oluşturabilirsiniz. Bu, birkaç durumda bir formu kullanmanıza ve her durum için ek bir form oluşturmanıza izin vermez. Uygulamada çok fazla form olduğunda bu özellik çok kullanışlı hale geliyor. Kontrolü görünmez yapmak için değeri ayarlayın Yanlış(Yanlış) mülk için Ekrandaki çıktı(Görünür) bu öğenin. Kontrolü ekranda göstermek için bu özelliği şu şekilde ayarlayın: Doğru(Doğru).
  • Verilerle çalışmanın geçerli durumuna bağlı olarak, belirli eylemleri veya formdaki diğer denetimleri gerçekleştirmek için tasarlanmış düğmelerin kullanılabilirliğini değiştirebilirsiniz. Kontrolü kullanılamaz hale getirmek için değeri ayarlayın Yanlış(Yanlış) Enabled özelliğine. Kontrolü erişilebilir kılmak için değeri ayarlayın Doğru(Doğru) bu özellik için.
  • Kullanıcının formdaki verileri değiştirmesini engelleyebilirsiniz. Bunun için taşınmaz Giriş(Etkin) karşılık gelen alanlar olarak ayarlanmalıdır Yanlış(Yanlış) ve özellik Kayıtları kilitleme(Kilitli) - değer Doğru(Doğru). Tüm alanlarda değişiklik yapılmasını yasaklamak istiyorsanız değeri ayarlayın. Yanlış(Yanlış) aşağıdaki form özellikleri için: Değişikliklere izin ver(Düzenlemeye İzin Ver), Eklemeye izin ver(İlavelere İzin Ver), Silme işlemine izin ver(Delitions'a İzin Ver). Bu özellikler dinamik olarak, yani kullanıcı form ile çalışırken değiştirilebilir. Örneğin, kullanıcı haklarını kontrol ettikten sonra veri düzenlemeyi etkinleştirebilir veya devre dışı bırakabilirsiniz.
  • Değer Ayarla makro eylemini kullanarak özellik değerini dinamik olarak değiştirebilirsiniz Kayıt kaynağı(RecordSource) görüntülenen verilerin içeriğini kontrol etmenizi sağlayan form için.

Access nesnelerini açmak ve kapatmak için makrolar vardır:

OpenForm, OpenQuery, OpenReport vb. Her türden bir nesneyi açmak için ayrı bir makro komutu kullanın ve bir nesneyi kapatmak için her tür nesnede ortak olan Makroyu Kapat komutunu kullanın. Bu makronun uygulanması gereken nesne türü, argümanlarından biri olarak belirtilir. Önceki örneklerde, etkin nesne için Form Aç ve Kapat makroları zaten kullanılmıştır.

OpenQuery makro eylemi, verileri değiştirmek için bir sorgu da dahil olmak üzere her tür sorguyu yürütmenize olanak tanır. Bu makroya argüman olarak bir seçim sorgusu veya çapraz sorgu adı belirtilirse, makro yürütmenin sonucu seçilen kayıtları görüntülemek olacaktır. Argüman, verileri değiştirme isteğinin adıysa, makro isteği yürütür ve tablolardaki verileri buna göre değiştirir.

Verileri değiştiren bir sorgu çalıştırdığınızda ekranda uyarı mesajları görüntülenecektir. Bu mesajların görüntülenmesini devre dışı bırakmak için SetWarnings makrosunu argüman değeriyle kullanın. Değil(Hayır). İsteği yürüttükten sonra, aynı makroyu, ancak Evet argümanını kullanarak sistem mesajlarının görüntülenmesini yeniden etkinleştirmeyi unutmayın. Aksi takdirde, Access uygulamada istenmeyen eylemlere yol açabilecek herhangi bir sistem mesajı görüntülemeyecektir.

OpenView makrosu, Access 2000 projelerinde kullanılması ve sunucuda depolanan verilerle çalışmak üzere tasarlanması dışında OpenQuery makrosuna benzer.

OpenStoreProcedure makro eylemi, düzenleme modunda bir sunucu saklı yordamını yürütmenize veya açmanıza olanak tanır. .

Bu bölümde tüm makrolar açıklanmamıştır. Tam bilgi için Access yardım sistemini kullanın. Hızlı yardım almak için:

  1. Bir takım seçin Yardım, Micrisift Yardım Erişim (Yardım, Microsoft Access Yardımı).
  2. Sekmeyi genişlet Cevap Sihirbazı(Cevap Sihirbazı) ve alana girin Bir eylem seçin(Ne yapmak isterdiniz?) Makronun adıdır. Düğmeye bas Bulmak(Arama).

Makroları VBA prosedürlerine dönüştürme

Çok sayıda makro oluşturduysanız ve ardından VBA programlamaya geçmeye karar verdiyseniz, oluşturulan tüm makroları VBA'da yeniden yazmak zorunda kalma konusunda endişelenmenize gerek yoktur. Access, makroları otomatik olarak VBA prosedürlerine dönüştürme yeteneğine sahiptir. Bu, hem formlardaki ve raporlardaki olaylarla ilişkili makrolar hem de olay prosedürlerine dönüştürülen makrolar için ve formlar ve raporlarla ilişkili olmayan genel makrolar için geçerlidir. Hepsi ayrı standart modüllere dönüştürülür.

Müşteri Etiketleri İletişim formundaki olaylara atanan makroları olay rutinlerine dönüştürmeye çalışalım:

  1. Müşteri Etiketleri İletişim formunu Tasarım görünümünde açın.
  2. Bir takım seçin Servis, Makro, Form Makrolarını Dönüştür(Araçlar, Makro, Formun Makrolarını Visual Basic'e Dönüştür).
  3. iletişim kutusunda Form makro dönüştürme(Form makrolarını dönüştür) (şek. 11.19) düğmesine tıklayın Dönüştürmek(Dönüştür), varsayılan onay kutularını seçili bırakarak.

İncir. 11.19. Makroyu VBA Prosedürüne Dönüştür

  1. Dönüştürme tamamlandığında, Müşteri Etiketleri İletişim formunda sağ tıklayın, örneğin İptal etmek, ve komutu seçin Özellikleri(Özellikleri).
  2. iletişim kutusunda Özellikleri(Özellikler) sekmeyi genişlet Etkinlikler(Etkinlikler).
  3. Olay kutusunda Düğmeye basın(Tıklandığında) ayarlandığı ortaya çıktı [Etkinlik prosedürü](). Alanın sağında bulunan Oluşturucu düğmesine tıklayın - prosedür metni içeren bir VBA düzenleyici penceresi açılacaktır (Şekil 11.20).

İncir. 11.20. Bir makrodan türetilen prosedür

Bu makrodan türetilen yordam, yakın form makrosunu yürütmek için DoCmd nesnesini kullanır. Pencerede ayarlanan onay kutularına göre makro dönüştürme(Makroyu Dönüştür), bir makrodaki yorumlar bir prosedürde yorumlara dönüştürüldü ve bir hata oluştuğunda bir hata mesajı görüntülemek için bir hata işleme kodu eklendi (bkz. bölüm 13).

Rapor olaylarına atanan makroların dönüştürülmesi de aynı şekilde gerçekleştirilir.

Şimdi, daha önce oluşturduğumuz Satış Yöneticileri makrosu gibi bir form veya rapordaki bir olayla ilişkili olmayan bir makroyu VBA prosedürüne dönüştürmeye bakalım.

  1. Kısayolu tıklayın makrolar(Makrolar) Northwind Veritabanı penceresinde. Bir makro listesi görünür. Satış Yöneticileri makrosunu seçin.
  2. Bir takım seçin Hizmet, Makro, Makroları Dönüştür(Araçlar, Makro, Makroları Visual Basic'e Dönüştür).
  3. Önceki örnekte olduğu gibi aynı iletişim kutusu açılacaktır (bkz. Şekil 11.19), burada düğmeyi tıklamanız gerekir. Dönüştürmek(Dönüştürmek). Dönüştürme işleminin sona ermesinden sonra, dönüştürme işleminin başarıyla tamamlandığı hakkında bir mesaj görünecek ve sonuçta ortaya çıkan kodu VBA'da görüntüleyebileceğiniz VBA düzenleyici penceresi açılacaktır (Şekil 11.21).
  4. Makro, Sales_Managers adlı bir işleve dönüştürülür (boşluklar alt çizgilerle değiştirilmiştir).

İncir. 11.21."Satış Yöneticileri" makrosunu dönüştürmenin sonucu

Dönüştürmeden sonra, orijinal Satış Makrosu kaldırılmadı ve Northwind veritabanı penceresindeki modüller listesine Dönüştürülen Makro adlı yeni bir modül eklendi.

Makroları VBA modülüne dönüştürmenin başka bir yolu daha vardır:

  1. Northwind veritabanı penceresinde Satış Yöneticileri makrosunu seçin.
  2. Bir takım seçin Dosya, Farklı Kaydet(Dosya, Farklı Kaydet).
  3. Görüntülenen iletişim kutusunda koruma(Farklı Kaydet), Farklı açılır listesinden bir öğe seçin Modül(Modül) (şek. 11.22) ve düğmesine basın TAMAM MI.

İncir. 11.22. Bir Makroyu Modül Olarak Kaydetme

sonuçlar

Bu bölümde size makroları, bunların nasıl oluşturulacağını ve çalıştırılacağını tanıttık, mevcut makrolara kısa bir genel bakış sağladık ve kullanım örneklerini gösterdik. Tüm olayları formlarda ve raporlarda ve bunların makrolar kullanılarak işlenmesini açıklamadık. Bu malzeme ayrıntılı olarak ch. 13. Aynı eylemler VBA prosedürlerinde uygulanabileceğinden, makroları kullanarak olayları işlemeye özel bir dikkat göstermeye gerek yoktur.

Sonuç olarak, makro kullanımının birçok kullanıcı eylemini otomatikleştiren uygulamaları kolayca oluşturmanıza olanak tanıdığını bir kez daha vurgulamak isterim. VBA programlama dilini derinlemesine incelemeden önce bu tür uygulamalar oluşturarak başlamanız önerilir. Ancak, karmaşık çok kullanıcılı uygulamalar, karmaşık makro ve modül kombinasyonları oluşturmadan VBA programlama dili kullanılarak hemen geliştirilmelidir.

Laboratuvar çalışması No. 1 "Excel'de tablolar oluşturma ve biçimlendirme"(eğitim şekli - tam zamanlı, yarı zamanlı) - etkileşimli form "Küçük gruplar halinde çalışın".

1. Örnekle bir tablo oluşturun:

bir B C D E F G
P / p No. müşteri tarih Zaman (saat, dk) Miktar, ovmak. Not.
her ay yıl başına
Voronin 15.Şubat 3,7 sunucu
Voronin 18 Şub 5,8 sunucu
Skobelev 22 Şubat 3,5 monitör
Vazin 15.Mart 4,9 Yazıcı
Vazin 24.Mart 7,5 Modem
Voronin 05.nisan 4,6 sunucu
Skobelev 20.Nisan 3,8 monitör
Skobelev 25 Nisan 7,2 Yazıcı
TOPLAM

4. Sayfa parametrelerini ayarlayın: kenar boşlukları - tümü 1,5 cm, A4 formatı, kitap.

5. Otomatik numaralandırma ile 1'den 8'e kadar olan satır numaralandırmasını doldurun.

6. Tarih biçimini tarihlere - 14 Mar 01, tutarlara - parasal biçime atayın.

Oluşturulan tabloda (yukarıya bakın):

1. 200 ile 300 arasındaki değerleri mavi italik, 2500 ile 3500 arasındaki değerleri kırmızı italik olarak vurgulayın (koşullu biçimlendirme kullanarak).

2. "Müşteri" sütununu artan düzende alfabetik olarak sıralayın.

3. Grafikler oluşturun: bir çubuk grafik "müşteri - harcanan zaman", bir pasta grafik - "müşteri - yıl için toplam" (başlıklar ve veri etiketleri ile).

10. Bir başlık ekleyin: Form 067-15-887.

11. Tabloyu ve şemaları bir sayfaya yerleştirin, kenar boşluklarını 1,5 cm olarak ayarlayın; yatay ve dikey merkez hizalamasını ayarlayın; genel bir başlık ekle - X-RING MÜŞTERİLERİ, bir resim ekleyin.

Laboratuar çalışmasına hazırlanmak ve bağımsız çalışma yapmak için, konu 3.4'ün aşağıdaki bölümlerine hakim olmalısınız: En basit hesaplamaları kullanarak Excel'de tablolar oluşturma ve biçimlendirme, hücrelerin biçimini değiştirme, koşullu biçimlendirme, sıralama, grafik nesneleri ekleme, başlıklar oluşturma ve altbilgiler.

1. Veri türlerini ve biçimlerini, bir hücredeki verilerin sunumunu tanımlayın.

2. Veri girerken otomatik tamamlama, otomatik giriş, otomatik düzeltme kullanma.

3. Değere ve hesaplama sonuçlarına göre verilerin koşullu biçimlendirmesi.

4. Mutlak ve göreli bağlantılar arasındaki fark nedir?

5. İşlev Sihirbazını nasıl kullanacağınızı açıklayın.

6. Elektronik tabloya grafiklerin nasıl ekleneceğini ve biçimlendirileceğini açıklayın.

7. Elektronik tabloya nasıl grafik eklerim?

Bölüm 8.1. - bir.

Bölüm 8.2. - 1, 2, 3.

Laboratuvar çalışması No. 2 “Excel'de fonksiyonların ustası. Mutlak ve göreceli bağlantılar "

1. Bir tablo oluşturun:

bir B C D E
1. çeyrekte "Pazarlama" bölümünün maaşı
Soyadı Ocak Şubat Mart %
İvanov 0,20
Pavlov 0,30
Antonov 0,25
Karpov 0,28
Nekrasov 0,21
Postnikov 0,32
averin 0,15
Yakushev 0,22
Vazin 0,27
Satış hacmi, $
Ortalama dolar döviz kuru, ovmak.

- (COS (1,2) + SIN (0,7)) * KÖK (9) / 4;

- ikinci dereceden denklemin kökleri x 2 - 5x + 6 = 0;

Kendi kendine çalışma ödevleri

- "Toplam" tüm değerleri;

- ORTALAMA (C3: C17) * MAKS (E3: E17) / 32;

Pratik görevi tamamlamak için, konu 3.4'ün aşağıdaki bölümlerinde uzmanlaşmak gerekir: formüllerle hesaplamalar; hücrelere ve hücre bloklarına mutlak ve göreli referanslar; formülleri kopyalama; formüllerde bir fonksiyon kullanmak; MS Excel'de fonksiyonların sınıflandırılması; işlev sihirbazının uygulanması.

Kendi kendine test için test soruları

1. Bir elektronik tabloda ne tür yerleşik işlevler kullanılabilir?

2. Hücre referansları ne içindir? Bir elektronik tabloda mutlak ve göreli hücre başvuruları nelerdir? Bu bağlantıların karşılıklı dönüşümü nasıl gerçekleştirilir? Ne zaman mutlak ve göreli bağlantılar ne zaman kullanılır?

3. Hücre formatı nedir? Hücrelerdeki verileri biçimlendirmek için hangi teknikleri biliyorsunuz?

4. MS Excel'de formüller kullanılarak hesaplamalar nasıl yapılır? Fonksiyon formüle nasıl eklenir? İşlev bağımsız değişkenlerine yapılan başvurular nasıl belirtilir?

6. Formül kopyalama mekanizması ne veriyor?

7. “Otomatik Toplama” nedir ve nasıl yapılır?

Bölüm 8.1. - bir.

Bölüm 8.2. - 1, 2, 3.

Laboratuvar çalışması No. 3 "Excel'de matris işlemleri"(eğitim şekli - tam zamanlı, yarı zamanlı) - etkileşimli form "Eğitim".

1. Matrislerin çarpımını bulun:

–6 –7
;
*
*
–8 –12 –2 –6
–4

2. Denklem sistemlerini çözün:

X 1 - x 2 + x 3 = 3, x 1 + 2x 2 + 3x 3 - 2x 4 = 6, 2x - 3y + z –2 = 0,

2x 1 + x 2 + x 3 = 11, 2x 1 + 4x 2 - 2x 3 - 3x 4 = 18, x + 5y - 4z + 5 = 0,

x 1 + x 2 + 2x 3 = 8,3x 1 + 2x 2 - x 3 + 2x 4 = 4, 4x + y - 3z + 4 = 0.

2x 1 - 3x 2 + 2x 3 + x 4 = - 8.

3x + 2y + z = 5, x - 2y + 3z = 6, 4x - 3y + 2z = 9,

2x + 3y + z = 1, 2x + 3y - 4z = 20, 2x + 5y - 3z = 4,

2x + y + 34z = 11,3x - 2y - 5z = 6,5x + 6y - 2z = 18.

Kendi kendine çalışma ödevleri

1. Matrislerin çarpımını bulun:

*
6
*
1
–3
;
12
–2 –6
–5 –3 –5 –1

2. Denklem sistemlerini çözün:

X + y + 2z = - 1, x + y + 2z = - 1, 2x - y - z = 4,

2x - y - 3z = 4, 2x - y + 2z = - 4, 3x + 4y - 2z = 11,

5x + 6y - 2z = 18.4x + y + 4z = - 2.3x - 2y + 4z = 11.

3x + 4y + 2z = 8, 4x + 7y - 3z = - 10, - 3x + 6y + 8z = - 7,

2x - y - 3z = - 4, 2x + 9y - z = 8, 9x - 11y - 15z = - 15,

x + 5y + z = 1.x - 6y + 3z = - 3.18x - 22y + 3z = - 3 .

Laboratuvar çalışmasına hazırlanmak ve bağımsız çalışma yapmak için, konu 3.4'ün aşağıdaki bölümlerinde uzmanlaşmak gerekir: matris işlemleri ve matris işlemlerini kullanarak Excel'de doğrusal denklemleri çözme yöntemleri.

Kendi kendine test için test soruları

1. Matris çarpım sırasını tanımlayın.

2. Lineer denklem sistemlerini çözme prosedürünü tanımlayın.

3. Satır ve sütun sayısının oranına göre matris çarpımı kuralını formüle edin.

4. Matris çarpımı için hangi yerleşik işlev kullanılır?

5. Doğrusal denklem sistemlerini çözmek için hangi yerleşik işlevler kullanılır?

Bölüm 8.1. - bir.

Bölüm 8.2. - 1, 2, 3.

4 numaralı laboratuvar çalışması "Excel'de grup işlemlerini kullanma"(eğitim şekli - tam zamanlı, yarı zamanlı) - etkileşimli form "Beyin Fırtınası".

1. Tabloyu en az 10 kayıtla oluşturun ve doldurun:

2. Listeyi "gün - grup - soyadı ad" şeklinde sıralayın.

3. Genel listede:

- "İlçe" başlığını ve verileri ekleyin (telefon numarasına göre):

- aşağıdaki sırayla yeni bir sıralama öğesi ekleyin:

Strogino, Khimki, Vykhino, Krylatskoe, Taganskaya,

- oluşturulan öğeye göre listeyi sıralayın.

4. Otomatik filtre kullanma:

- "K" ile başlayan ve "p" içeren soyadları göster;

- 599 okul öğrencisi;

- 1. grubun öğrencileri;

- Pazartesi ve Salı günleri 2. ve 3. grupların öğrencileri.

5.Gelişmiş filtreyi kullanarak öğrenci sayısını 1-6 arasındaki koşullara göre gösterin:

Koşul No. Soyad, AD okul Sınıf Telefon Gün Grup
P * B * C *
Oturdu
pzt sal çar
pazartesi salı oturdu

6. Ara toplamları kullanarak öğrenci sayısını okula, haftanın gününe, ilçeye, gruba göre gösterin.

7. Pivot tablolar oluşturun:

- okullardan sınıflara göre öğrenci sayısı;

- gruplardan günlere göre öğrenci sayısı;

- sınıflardan günlük öğrenci sayısı.

Kendi kendine çalışma ödevleri

1. Tablo 2 No'lu laboratuvar çalışmasından tabloyu doldurun - başlık: "EV maliyet tahmini", çerçeve, sütun başlıklarını farklı bir biçimde vurgulayın.

2. "Giderler" verilerini alfabetik olarak sıralayın, gider türlerine göre alt toplamları (tutarları) gösterin.

3. "Giderler - tutar" (satırlardaki veriler) noktası 3 için ayrı bir sayfada bir diyagram oluşturun, diyagramı içeren sayfayı "Giderler - tutar" olarak yeniden adlandırın.

4. Verileri "alıcı"ya göre sıralayın, her alıcı için harcama miktarını gösterin.

5. Toplamları kaldırın, alıcı Prestige JSC için verileri göstermek için otomatik filtreyi kullanın.

6. Bir otomatik filtre yardımıyla, Ocak ayı verilerini gösterin, bir "Tarih - toplam" grafiği oluşturun ve yeniden adlandırın.

7. Otomatik filtreyi kaldırın, verileri tarihe göre sıralayın, A sütunundan önce bir sütun ekleyerek tablo satırlarını otomatik tamamlama ile numaralandırın, A sütununa bir çerçeve ekleyin.

Laboratuvar çalışmasına hazırlanmak ve bağımsız çalışma gerçekleştirmek için, konu 3.4'ün aşağıdaki bölümlerinde uzmanlaşmanız gerekir: sıralama, alt toplamlar, filtreleme, otomatik tamamlama kullanarak Excel'de listeler oluşturma; Excel'de listelerle çalışırken grup işlemleri (yeni sıralama öğeleri oluşturma, gelişmiş bir filtreyle çalışma, pivot tablolarla çalışma).

Kendi kendine test için test soruları

1. Yerleşik otomatik tamamlama listeleri nasıl kullanılır?

2. Bir hücre bloğunun otomatik tamamlaması nedir?

3. Otomatik tamamlama için bir liste nasıl hazırlanır?

4. Otomatik filtre ile çalışmak ile gelişmiş filtre ile çalışmak arasındaki fark nedir?

5. Listelerin çok düzeyli sıralaması nasıl yapılır?

6. Listelerin oluşumunun özellikleri nelerdir?

7. Ara toplamları hesaplama işlemi nasıl yapılır?

Bölüm 8.1. - bir.

Bölüm 8.2. - 1, 2, 3.

Laboratuvar çalışması No. 5 "Excel'de makro oluşturma"(eğitim şekli - tam zamanlı) - etkileşimli form "Beyin Fırtınası".

1. Göreli referanslarla tablolar oluşturmak için makroları kaydedin ve CTRL + T ve CTRL + P klavye kısayollarını kullanarak çağrı yapın.

1 dönem için grup ders programı
Pzt için - t sal için - t evlenmek için - t inci için - t Cuma için - t

Kendi kendine çalışma ödevleri

1. Bir makro kaydedin - şablonu devam ettirin.

2. Seçilen herhangi bir aralığı biçimlendiren bir makro oluşturun.

3. Metin giren ve her zaman aynı hücrelerde biçimlendiren bir makro oluşturun.

Laboratuvar çalışmasına hazırlanmak ve bağımsız çalışma gerçekleştirmek için, konu 3.4'ün aşağıdaki bölümlerinde uzmanlaşmanız gerekir: hesaplama işlemlerini otomatikleştirmek için Excel'de makroların nasıl oluşturulacağı ve çalıştırılacağı.

Kendi kendine test için test soruları

1. Excel'de makro oluşturma amacını formüle edin.

2. Bir makronun nasıl otomatik olarak kaydedileceğini açıklayın.

3. Bir makroyu göreli ve mutlak referanslarla kaydetme arasındaki fark nedir?

4. Bir makronun yürütülmesine klavye kısayolu nasıl atanır?

5. Araç çubuğunda bir makronun yürütülmesine nasıl bir düğme atanır?

Bölüm 8.1. - bir.

Makro Randevu
OpenForm Formu önizleme modunda açabilir. Bir filtre uygulamak ve seçim koşullarını ayarlamak mümkündür.
Açık İstek Önizleme modunda bir sorgu açabilir
Masayı aç Tabloyu önizleme modunda açabilir.
ÇıktıBilgisi Belirtilen tablo, sorgu, form, rapor veya modülün çıktısını XLS, RTF veya TXT formatında bir dosyaya verir ve ayrıca dosyayı düzenlemek için uygun uygulamayı başlatır.
Baskı Etkin tabloyu, formu veya raporu yazdırır. Yazdırılacak sayfa aralığını, kopya sayısını ve kopyaların iç içe geçip geçmemesini ayarlayabilirsiniz.
KomutMenüsü Access ana menüsünde bir komut yürütür
Çıktı Tüm pencereleri kapatır ve Access'ten çıkar
LaunchMacro Başka bir makro çalıştırır
StopAllMakrolar Bu makroyu başlatan makro dahil tüm makroların çalışmasını durdurur
Menü ekle Bir form veya rapor için özel menü çubuğuna bir açılır menü ekler. Bu makronun argümanları, menü çubuğunun adını ve menüde kullanılan tüm komutları ve bu komutlara karşılık gelen tüm eylemleri içeren başka bir makronun adını belirtir.
KomutMenüsü Ana Access menülerinden birinden bir komut yürütür. Bu makroyu özel bir menü çubuğunda kullanarak, özel menüde komutları çalıştırabilirsiniz.
KomutlarKlavyeler Basılan tuşların sırasını hatırlar
Değer Ayarla Güncellenebilen herhangi bir kontrol veya özelliğin değerini değiştirir
sinyal bip sesleri
İleti Bir uyarı veya bilgi mesajı görüntüler
Mesajları Ayarla Etkinleştirildiğinde, makro çalışırken tüm sistem uyarı veya bilgi mesajlarına yanıt anahtarı olarak Enter tuşu atanır. Mesajların görüntülenmesini iptal etmek için, bu komutu DisplayOnScreen makrosu Kapalı olarak ayarlıyken kullanın.
Görüntüle Makro çalışırken gerçekleştirilen ara işlemlerle ilgili bilgileri görüntüler
Genişlet Etkin pencerenin boyutunu tam boyuta yükseltir
Çöküş Etkin pencereyi simge durumuna küçültür
Vardiya Boyutu Etkin pencereyi yeniden boyutlandırır
Onarmak Pencereyi orijinal boyutuna geri yükler

Araç çubuğundaki makrolarla çalışmak için aşağıdaki düğmeler kullanılır (Şekil 9.1.):

Buton makro adları("XYZ" resmiyle birlikte) “ sütununu görüntüler veya kaldırır Makro adı " gruba dahil olan makrolara ad atayabileceğiniz;

Buton Koşullar(akış şeması görüntüsü ile) " sütununu görüntüler veya kaldırır Durum" bir eylemin ilişkilendirildiği koşulu ayarlayabileceğiniz makro penceresinde;

Buton Yürüt("!" resimli) makroyu çalıştırır;

Buton Adım adım(bir ok ve bir liste ile) makroyu adım adım yürütür;

Veritabanında bulunan bazı nesnelere hizmet vermek için bazen her biri çok özel bir prosedürü otomatikleştiren büyük bir makro seti oluşturulur. Bir form veya rapordaki olaylarla ilişkili tüm makroların, bu form veya rapora karşılık gelen ayrı bir nesne (grup) halinde birleştirilmesi önerilir. Her makronun grup içinde benzersiz bir adı olmalıdır. Nesne adı Makro grubun adı olacaktır. Bir makro grubundan bir makro komutu çağırmak, makro grubunun tam adı ve gruptaki makro komutu belirtilerek gerçekleştirilir: GrupAdı.MakroAdı.

Bir makrodaki makroların yürütme sırası değiştirilebilir. Bunun için makroya makro yürütme veya atlama koşulları girilir. Koşullar bir sütunda ifade olarak belirtilir Durum.

Bir form veya rapor bağlantısı iki bölümden oluşur: AileAdı!NesneAdı. Tüm açık formlar Formlar ailesine, açık raporlara - Raporlar ailesine dahildir. Örneğin, Formlar! [Müşteri Siparişleri] veya Formlar! Müşteri; rapor bağlantısı - Raporlar! [Satış raporu]. Nesne adı boşluk veya özel karakterler içeriyorsa, köşeli parantez içine alınmalıdır. Bir form veya raporun özelliğine yönelik bir bağlantı üç bölümden oluşur: AileAdı!NesneAdı.ÖzellikAdı. Örneğin: Formlar! İstemci. Görüntüle.

AileAdı!NesneAdı!ÖğeAdı (örneğin, Formlar! [Müşteri Siparişleri]! [Müşteri Numarası]);

AileAdı! NesneAdı! ÖğeAdı.ÖzellikAdı (örneğin, Formlar! [Müşteri Siparişleri]! [Erişim]).

Görev

1.Form Aç makro eylemini içeren bir makro oluşturun. Form, başka bir formda bulunan bir düğme kullanılarak açılmalıdır.

2. Yeni makrolarla birlikte önceki makroyu içeren bir grup oluşturun. Makro seçimini kendi takdirinize göre yapın.

3. Koşullu bir makro oluşturun.

İş emri

Makro oluşturma

1. Pencerede Veri tabanı sekmeye tıklayın makrolar ve düğmeye tıklayın Oluşturmak... Şekil 2'de gösterilene benzer bir makro tasarım penceresi. 9.1. (sütun olmayacak makro adı ve Durum). Bu penceredeki her satır bir makro komutu ve buna bir yorum içerebilir.

2. İşaretçi ile işaretlenmiş satıra şunu girin: Makro... Komut, klavyeden girilebilir veya sütunun hücrelerinde bulunan listeyi kullanabilir. Makro.

3. Sütuna açıklamalar girmeniz önerilir Not... Yorumlar, makroların anlaşılmasını ve bakımını kolaylaştırır.

4. alan ne zaman Makro altta dolu makro oluşturucu görünecek argümanlar paneli... Bu paneldeki alanların listesi seçilen makroya bağlıdır ve makronun bağımsız değişkeni yoksa mevcut olmayabilir. Makro bağımsız değişken alanında sistem için gerekli tüm bilgileri sağlayın. Genel olarak, bir argümanın seçilmesi bir sonraki argümanın olası değerlerini belirleyebileceğinden, bir makronun argümanlarını listelendikleri sırayla belirtmeniz önerilir.

5. Makroyu kaydedin. Bunu yapmak için butonunu kullanabilirsiniz. Kayıt etmek veya komutu çalıştırın DOSYA / Kaydet... Makroya bir ad verin (adın anlamlı olması gerekir).

6. Yürütmek için makroyu çalıştırın.

Bir makroyu birkaç yoldan biriyle çağırabilir ve yürütebilirsiniz:

Makro tasarım modunda (bkz. Şekil 9.1.), düğmesine tıklayın Yürüt;

Komutu çalıştır SERVİS / Makro Çalıştır ve listeden yürütülecek makronun adını seçin;

Pencerede Veri tabanı sekmede makrolar yürütülecek makronun adına çift tıklayın.

7. Açılmak Yapıcı modu makronun geliştirilmekte olduğu formdan farklı bir form.

8. Açık bir formun başlık alanına yerleştirerek bir düğme oluşturun. Düğmenin özellikler penceresini açın (Şekil 9.2): düğmeyi seçin, görünen menüde farenin sağ düğmesine basın, Öğe Özellikleri(düğmeye çift tıklayarak özellikler penceresini açabilirsiniz). Özellikler penceresinde, makronun hangi olayla ilişkilendirildiğini belirtin. Varsayılan olarak, bu olay Düğmeye basın.

Makro grupları oluşturma

Makroları bir makro grubunda birleştirin (yeni bir nesne oluşturabilir veya önceden oluşturulmuş bir makroyu bir makro grubuna dönüştürebilirsiniz).

1. makro oluşturucu.

2. Düğmeye bas makro adları araç çubuğunda. Pencerede makro oluşturucu başka bir sütun görünecek makro adı.

3. Bu sütuna ilk makronun adını girin. Bir sütunda aynı satırda Makro makronun adını ve ardından onunla eşleşen tüm bağımsız değişkenleri girin. Makronun birkaç makro içermesi gerekiyorsa, bunları sütunun sonraki satırlarına girin Makro.

4. Çizgiyi geç.

5. Sonraki makronun adını ve ilgili makroları girin. İncirde. 9.3, örnek olarak, "Northwind" veritabanının "Tedarikçiler" makrosu sunulmaktadır.

6. Makronun çalışıp çalışmadığını kontrol edin. Komutu yürütün SERVİS / Makro Çalıştır(sadece makro grubundan ilk makro yürütülür) . Gruptan diğer makroları çağırmak, diyalog kutusuna makro grubunun adını girerek ve bir nokta ile makronun adını belirterek mümkündür.

7. Makroyu kaydedin.

Koşullu Makro Oluşturma

Örneğin, Şekil. 9.4, şirketin deposundaki mallar hakkında bir tablo görüntüleyecek bir makro tasarlamak için bir pencere gösterir. tablo "Stoktaki ürünler" sadece sahadayken açılacak Fiyatşekil 1000'den küçük bir değer girilecektir.Makro bir kontrol ile ilişkilendirilmiştir. Fiyatşeklinde "Depodan satılan mallar"... Bu makroyu bir kontrole bağlama Fiyat bir düğme makrosunun bağlanmasıyla aynı şekilde gerçekleşir. Makro ya bir olaya bağlanır Çıktı veya olayla Giriş.

1. makro oluşturucu.

2. Düğmeye bas Durum. sütuna yaz Durum true ise oluşturulan makroyu yürütecek bir ifade. Penceredeki koşul için ifadeler belirtmek daha uygundur. İfade Oluşturucu.

3. Makroyu ayarlayın.

4. Makroyu kaydedin.

5. Açılmak Yapıcı modu kontrollerden birinin geliştirilen makro ile ilişkilendirilmesi gereken bir form. Bir denetim ve bir makroyu bağlayın.

6. Makronun çalışıp çalışmadığını kontrol edin.

Ek 1

istatistiksel fonksiyonlar

fonksiyon Açıklama
toplam Her grupta belirtilen alandaki tüm değerlerin toplamını hesaplar. Yalnızca sayısal ve para birimi alanları için kullanılır.
Ort. Her grupta belirtilen alandaki tüm değerlerin aritmetik ortalamasını hesaplar. Yalnızca sayısal ve para birimi alanları için kullanılır. Null değerler hesaplamalara dahil edilmez.
En az en çok) Her grup içinde belirtilen sayısal alanda bulunan en küçük (en büyük) değeri döndürür. Metin alanları için, büyük/küçük harfe bakılmaksızın karakter değerlerinden en küçüğü. Boş değerler yoksayılır.
Miktar Bu alanın değerlerinin Null olmadığı kayıtların sayısını döndürür. Sayı (*) Null değerleri hesaba katmak için kullanılır
StDev * Her grupta bu alandaki tüm değerler için yanlı istatistiksel standart sapmayı hesaplar. Sayısal ve para birimi alanları için geçerlidir. Grupta ikiden az satır varsa Null döndürür.
StDevP * Tarafsız istatistiksel standart sapmayı hesaplar
Var * Her grupta verilen alandaki tüm değerler için yanlı istatistiksel varyansı hesaplar. Sayısal ve para birimi alanları için geçerlidir. Grupta ikiden az satır varsa Null döndürür.
VarP * Tarafsız istatistiksel varyansı hesaplar
İlk * Belirtilen alandaki ilk değeri döndürür.
Son * Belirtilen alandaki son değeri döndürür.

Not: * ile işaretlenen işlevler Sorgu Sihirbazı başvurmayın.


Ek 2

İfade Oluşturucu

Expression Builder, karmaşık ifadeler oluşturmaya yönelik bir araçtır. Pencere yapısı İfade OluşturucuŞekil 'de gösterilmektedir. A.2.1.

İfade metin kutusu

ifade- bir dizi operatör ve işlenen (sabitler, tanımlayıcılar ve işlevler).

tanımlayıcılar- ifadeleri değerlendirirken geçerli değerleriyle değiştirilen nesnelerin adları (örneğin, tablo veya sorgu alanları). Bir nesnenin adı birden fazla kelimeden oluşuyorsa, köşeli parantez içine alınmalıdır. Bununla birlikte, bir nesnenin adı bir kelimeden oluşsa bile parantez kullanmak yaygındır, böylece ifadelerle çalışırken nesnelerin adları hemen görünür.

Tanımlayıcılar, Visual Basic for Applications programlarında kullanılan sabitlerin ve değişkenlerin yanı sıra True, False, Yes, No, Null adlı sabitlerin adlarıdır.

Fonksiyonlar- fonksiyon adı yerine ifadedeki değeri döndür. Çoğu işlev, argümanlarının etrafında parantez gerektirir. Boş bir argüman listesine sahip bir fonksiyon örneği: Tarih ()- geçerli tarihi döndürür.

Tablo 2.1'de sunulan, ifade oluşturmak için altı operatör kategorisi vardır.

Tablo S. 2.1

İfadeler oluşturmak için operatörler

Operatör kategorisi Şebeke Misal Açıklama
Aritmetik operatörler + [Toplam] + [Ek Ücret] İki işlenen ekler
- Tarih () - 7 İki işlenenin farkını sayar
* [Kutular] * [Fiyat] İki işleneni çarpar
/ [Tutar] / 5.33 Bir işleneni diğerine böler
\ [Miktar: 2 Bir bütün işleneni integral olarak diğerine böler. Bu durumda, ondalık kesirli işlenenler en yakın tam sayıya yuvarlanır.
Mod [Kutular] Mod 3 Dalın geri kalanını bütünüyle döndürür
^ [A] ^ [b] A işlenenini b'ye yükseltir
Karşılaştırma Operatörleri 1 < 1 < 100 Az
<= [a]<= 2 Az veya eşit
= [b] = 3 eşit
> [a]> 2 Daha
>= [b]> = 3 Büyük veya eşit
<> 1<>100 Eşit değil
Mantıksal operatörler 2 Ve [A ve B] Bağlaç (mantıksal VE)
Veya [A veya b] Ayrışma (Boolean Veya)
Değil [A] değil mantıksal olumsuzlama
Xor [A] X veya [B] Özel veya
denklem [A] Denklem [B] mantıksal denklik
İmp [A] İmp [B] mantıksal çıkarım
Birleştirme operatörleri + "Görsel" + "Temel" İki metni birleştirme
& "Visual Basic" değerler tek bir satırda. Her iki işlenen de eşdeğerdir, ancak & tercih edilir
Tablo A.2.1'in devamı
tanımlama operatörleri ! NesneSınıfı! Nesne adı Nesne referanslarında ayırıcı
. NesneAdı.Yöntem Nesnelerin yöntemlerine ve özelliklerine yapılan referanslarda ayırıcı
Desen karşılaştırma operatörleri Arasında (-100) ile (100) Arasında Sayısal bir değerin belirli bir aralıkta olup olmadığını belirler
Dır-dir [Ad] Boş Yalnızca bir değerle karşılaştırmak için kullanılır. Örnekte, Ad alanında veri olmadığında ifade doğru olarak değerlendirilir.
İçinde ("Moskova", "Kiev", "Murmansk") içinde Bir dize değerinin bir değerler listesinin bir öğesi olup olmadığını belirler
Sevmek “Yves *” gibi “db ??” Gibi Bir dize değerinin belirtilen karakterlerle başlayıp başlamadığını belirler (“*” karakteri herhangi bir sayıda karaktere karşılık gelir, “?” Yalnızca bir karaktere karşılık gelir)

Notlar:

1. Karşılaştırma operatörlerini kullanmanın sonucu Doğru veya Yanlış'tır. İşlenenlerden biri Null ise, herhangi bir karşılaştırma Null döndürür.

2. Mantıksal işleçleri kullanmanın sonucu Doğru veya Yanlış'tır. İşlenenler setten bir değere sahiptir (True, False, Null). Imp dışındaki tüm Boole operatörleri için Null işlenen değeri, Null sonuç değeriyle sonuçlanır.

İfade öğeleri metin kutusuna girilir İfade oluşturucu. En yaygın operatörler, pencerenin ortasındaki düğmelerle temsil edilir. İfade öğeleri, nesneler, işlevler, sabitler, işleçler ve genel ifadeler listelerinden seçilebilir.

İfade öğelerini listelerden kopyalamak için önce sol bölmedeki klasörlerden birine tıklayın. Bazı klasörlerde, genişletmek için çift tıklanan alt klasörler bulunur. Açık klasöre karşılık gelen öğelerin listesi sağ bölmede görüntülenir.

Bazı durumlarda, orta bölmede ifadelere ekleyebileceğiniz öğeler de bulunur (örneğin, tablo alanı tanımlayıcıları).

Listeden bir metin kutusu ifadesine bir öğe eklemek için, onu çift tıklatabilir veya seçip düğmesini tıklayabilirsiniz. Yapıştırmak.


Ek 3

Araç kutusu düğmeleri GİRİŞ

Buton Düğme adı fonksiyon
nesne seçimi Fare işaretçisini bir seçim aracına dönüştürür
ustalar Yeni Kontrol Sihirbazlarını etkinleştirir veya devre dışı bırakır
yazıt Başlıkların, açıklamaların veya açıklamaların metni, bu metin değişmeden kalır
Alan Metin verilerini görüntülemek ve düzenlemek için bir alan oluşturur
Grup Anahtarları, radyo düğmelerini, onay kutularını yerleştirmek için bir çerçeve oluşturur. Bir seferde çerçeveli nesnelerden yalnızca biri seçilebilir. Çerçevenin her elemanının benzersiz bir numarası vardır.
Geçiş Değiştir Onay Kutusu Değiştir, değiştir, onay kutusu bir gruba dahil değil bir boole değeri tanımla Evet (Evet) ya da değil (Hayır), True kullanmasına izin verilir (Doğru) veya herhangi bir pozitif sayı, Yanlış (Yanlış) veya sıfır
Açılan kutu Bir değer giriş alanı ve bir değer kümesinden bir değer seçebileceğiniz bir liste kutusu içeren bir birleşik giriş kutusu oluşturur
Liste Değerleri seçmek için bir açılır liste oluşturur
Buton Tıklandığında bir Access VBA olay rutinini tetikleyen bir düğme oluşturur
Resim Bir forma veya rapora bir bitmap ekler. Resim bir OLE nesnesi değildir, forma yerleştirildikten sonra değiştirilemez
ücretsiz çerçeve Bir forma veya rapora OLE nesnesi ekler
Ekli çerçeve Alanda bir grafik nesnesi varsa, bir OLE kaydı alanının içeriğini görüntüler, aksi takdirde nesne simgesi görüntülenir
Devam 3
Sayfa sonu Bir form veya rapor yazdırırken, yazıcıyı sayfa sonunda yeni bir sayfa başlatmaya zorlar. Mola form veya rapor görünümünde görünmüyor
Sekme seti Sekmeyle ayrılmış bir form oluşturmak için bir dizi sekme ekler.
Alt form / rapor Ana forma / rapora alt form / rapor ekler
Çizgi Dikdörtgen Çerçeveleri, sınırları simüle etmek için formu mantıksal gruplara bölmek için kullanılırlar. Renk, çizgi genişliği, dikdörtgen dolgu, biçimlendirme araç çubuğu kullanılarak ayarlanır
Ek unsurlar

Ek 4

kontrol listesi

1. ACCESS VTYS'de veritabanı yapısını tanımlama prosedürü nedir?

2. Veritabanı tablosunun yapısı hangi modda açıklanmıştır?

3. “nesne”, “özellik”, “yöntem”, “olay” terimlerinin tanımlarını verin.

4. ACCESS DB penceresinde ne tür nesneler görülebilir?

5. Veritabanı dosyaları için hangi uzantı kabul edilir?

6. Tablonun yapısını oluşturduktan sonra değiştirebilir miyim?

7. ACCESS'te ne tür veritabanı alanları sağlanmaktadır?

8. Veritabanı alanlarını adlandırma kuralları nelerdir?

9. OLE Nesnesi alanlarında hangi bilgiler saklanabilir?

10. Alanın hangi özellikleri mutlaka tanımlanmalıdır?

11. İlişkisel veritabanındaki birincil anahtarın amacını açıklayın. Birincil anahtar değerleri üzerindeki kısıtlamalar nelerdir?

12. Endekslerin amacını açıklayın.

13. Bir alanın bir bölümünde dizin oluşturabilir miyim? Evet ise, nasıl yaparsınız?

14. ACCESS VTYS'de ne tür veri kontrolü otomatik olarak gerçekleştirilebilir?

15. Veritabanı tabloları arasındaki ilişkileri tanımlamak neden gereklidir?

16. Tablolar arasındaki ilişkileri hangi modda tanımlamanız gerekir?

17. ACCESS ne tür bağlantıları destekler?

18. Bağlantıların ayarlanmasının veri tabanına bilgi girme ve bilgi değiştirme üzerindeki etkisi nedir?

19. Veri tabanına veri girme ve düzeltme görevleri nelerdir?

20. Bir veri düzeltme görevi hangi tipik işlemleri içerir?

21. ACCESS'te hangi veri kontrol teknikleri mevcuttur?

22. Veri doğrulama ne zaman yapılır?

23. Tabloya yeni kayıt nasıl eklenir?

24. Tablodan bir kaydı nasıl silebilirim?

25. Veritabanından silinen bilgileri kurtarmak mümkün müdür?

26. Tabloda gerekli değer nasıl bulunur?

27. Tüm veritabanı kayıtlarında Zarya LLP'nin adı Rassvet JSC ile nasıl değiştirilir?

28. Arama kalıbı nedir, kalıpta hangi semboller kullanılır ve ne için?

29. Veritabanı kayıtlarının sıralaması ne amaçla ve nasıl yapılmaktadır?

30. "Şirket" alanına göre sıralandığında tablonun diğer alanlarındaki veriler nasıl davranır?

31. Verilerin sıralanmasını nasıl iptal edebilirim?

32. İstek nedir ve ACCESS ne tür istekleri destekler?

33. Parametrelerle bir sorgu seçimi oluştururken parametreler nasıl ayarlanır?

34. Birleştirilmiş (grup) işlemler nelerdir ve sorgularda nasıl uygulanır?

35. Bir sorgu oluştururken alanların çıktı şablonuna hangi tablolardan alınacağı nasıl belirlenir?

36. Çapraz referans sorgusu nedir ve nasıl oluşturulur?

37. SQL hangi dil sınıfına aittir? SQL sorguları oluşturmak için nasıl kullanılır?

38. Alt sorguları içeren bir SQL sorgusunun yapısı nedir?

39. Bir formdan bir isteğe parametre iletmek mümkün müdür, mümkünse nasıl yapılır?

40. Tablolara sorgular yoluyla veri girmek mümkün müdür, mümkünse hangi durumlarda birbirine bağlı tablolara, tablolara sorgular aracılığıyla veri girilmesine getirilen kısıtlamalar nelerdir?

41. Gruplama alanları nedir, tek bir sorguda aynı anda birkaç gruplama alanı kullanabilirsiniz ve sonucun anlamı nedir?

42. Tablo oluşturma sorgusu nedir, nasıl çalışır, hangi tabloyu oluşturabilirsiniz?

43. Veritabanı tablolarındaki değişiklik talepleri nasıl oluşturulur? Birden çok tablodaki değişiklikleri tek bir sorguya dahil edebilir misiniz?

44. Silme istekleri nedir, nasıl oluşturulur? Silme istekleri ne için kullanılabilir? Parametrelerle bu tür sorgular olabilir mi?

45. Sorgularda hesaplanan alanlar nelerdir, ne işe yararlar ve nasıl oluşturulurlar?

46. ​​​​Hesaplanan alanlar bir sorguda seçim koşulunun oluşumuna katılabilir mi?

48. Görünür veya görüntülenebilir ve görünmez veya görüntülenemez sorgu alanları nelerdir? Neden görünmez sorgu alanlarına ihtiyacımız var?

49. İfade Oluşturucu'da belirli bir tablonun alanlarını, belirli bir sorgunun alanlarını nasıl görebilirsiniz? Bir sorgu oluştururken İfade Oluşturucusu'nda neden tüm alanlar görünmüyor?

50. Aynı anda kaç veritabanı açılabilir?

51. “Tablo” nesnesi hangi özelliklere sahiptir?

52. "Form" nesnesinin amacı. "Form" nesnesinin hangi özellikleri vardır?

53. ACCESS, çok ekranlı formlar oluşturmanıza izin veriyor mu?

54. Farklı veritabanı dosyalarına bilgi girmek için aynı ekran formunu kullanmak mümkün müdür?

55. Bir forma alt form nasıl gömülür?

56. "Rapor" nesnesinin amacı. “Rapor” nesnesinin hangi özellikleri var?

57. Sadece toplam satırlarını içeren bir rapor alınabilir mi? Evet ise, nasıl?

58. Çıktı belgesindeki alanın uzunluğunu ve biçimini veritabanı dosyasında belirtilenle karşılaştırmalı olarak değiştirmek mümkün müdür?

59. Makro nedir? Makroların atanması.

60. Veritabanı penceresi tablolar, sorgular ve formlar için hangi modlara izin verir? Geçerli makro modlarından nasıl farklıdırlar?

61. Bir makronun çalışmasındaki hatalar nasıl belirlenir?

62. ACCESS diğer formatlarda saklanan verileri kullanabilir mi?

63. Bir EXCEL çalışma sayfasından veri aktararak bir tablo nasıl oluşturulur?

Oluşturulan makro yürütülmelidir. Makroları çalıştırmanın birkaç yolu vardır:

1. Bir komut aracılığıyla Makrolar -> Makro -> Servis

2. Makroya atanmış tuşların bir kombinasyonunu kullanma;

3. Bu makroya atanan menü komutu ile;

4. Araç çubuğunda bu makroya atanan düğme aracılığıyla.

Bir makronun nasıl çalıştırılacağı seçimi, kendi ihtiyaç ve tercihlerine göre kullanıcının kendisi tarafından belirlenir. En sık yürütülen makroları çalıştırmak için ikinci yöntemin kullanılması önerilir. Üçüncüsü, ana menüye kendi komutlarınızı girme ve böylece menüyü iyileştirme yeteneğini gösterir. İkinci yöntem, lansmanın görünürlüğü ile ayırt edilir.

Bu makro çalıştırma yöntemlerinin her birine daha yakından bakalım.

1. Takım Makrolar -> Makro -> Servis- yürütme için bir makro çağırmanın standart versiyonu. Makro iletişim kutusunda, oluşturulan makroyu seçin ve [Çalıştır] düğmesine tıklayın. Bu yöntem, bir makro komutunu düzenlemek ve silmek için de uygundur - [Düzenle], [Sil] düğmeleri.

2. Tuş kombinasyonunu kullanarak (şek. 2):

İncir. 2. İletişim kutusu. Klavyeyi atama için yapılandırma makro

Microsoft Word'de klavye kısayolları.

2. İletişim kutusunda bir makroyu çağırmak için Klavye özelleştirme sekmede Yeni klavye kısayolu kontrol tuşlarının bir kombinasyonu gösterilir. Örneğin, sayısal veya alfabetik tuşların bir kombinasyonu ile birlikte (Latince);

Daha sonra atamayı yapan [Assign] butonuna tıklanır.

3. Menüdeki bir komutla arama - menünün standart ayarı gerçekleştirilir: bir makro komutunu çağırmayla ilişkili bir menü öğesi ekleme:

Görüntülenen iletişim kutusunda özelleştirme, sekmesinde Komutlar birleşik giriş kutusundan Kategoriler takım seçildi makrolar ardından makronun adı;

makro komutu adına sol fare düğmesine tıkladıktan sonra, bir menü öğesi eklemek için menüye sürüklenmesi gereken düğmenin noktalı bir görüntüsü görünür. Ardından farenin sol tuşu bırakılır.

4. Araç çubuğunda bu makroya atanan düğmeyi kullanarak (Şekil 3):

Word'de, iletişim kutusundaki [Panels] düğmesine (bkz. Şekil 1) tıkladığınızda Kayıt makro iletişim kutusu görünür özelleştirme hangi sekmede Komutlar birleşik giriş kutusundan Kategoriler seçilmiş makrolar ardından makronun adı;

makro adına sol fare düğmesine tıkladıktan sonra, araç çubuğuna sürüklenmesi gereken düğmenin noktalı bir görüntüsü belirir. Bundan sonra, sol fare düğmesi serbest bırakılır;

[Seçili nesneyi değiştir] butonuna tıklayarak, ü komutunu çalıştırarak buton için beğendiğiniz ikonu seçebilirsiniz. Bir düğme için bir simge seçin(şekil 4). Komutu kullanarak simgeyi de düzenleyebilirsiniz. Bir düğmenin simgesini değiştirin(pencere Düğme düzenleyici) (şekil 5).

İncir. 3. İletişim kutusu Bir makroya atama ayarları
Microsoft Word'deki araç çubuğu düğmeleri.

İncir. 4. Düğme için bir simge seçmek için iletişim kutusu

İncir. 5. İletişim kutusu Düzenleyici düğmeleri

Excel'de, kendisine atanan sembolü kullanarak bir makro çalıştırmak da mümkündür.

Çağırma yöntemini seçtikten sonra küçük bir araç çubuğu belirir. Kaydetmeyi bırak bir düğme içeren:

- [Kaydı durdur] - makro kaydını sonlandırır;

[Duraklat] - makro kaydını duraklatır (şek. 6).

Şekil 6. Microsoft Word'de Makro Kaydedici Paneli

  1. Makroları değiştirme

Makrolar şablona program metinleri olarak kaydedilir. Her şablon herhangi bir sayıda makro içerebilir. Nokta dosyaları (nokta şablon dosya uzantısıdır) belge olarak okunamadığından, Word bir makroyu VBA deyimleri dizisi olarak görüntülemenize ve düzenlemenize izin veren özel araçlar sağlar (Şekil 7). Düzenleme sırasında herhangi bir makro, bir dizi VBA deyimi olarak sunulur. Bir makroyu düzenlemenin özü, başka bir dilde programlama yaparken olduğu gibi operatörleri silmek, eklemek ve değiştirmektir.

Şekil 7. VBA düzenleyici iletişim kutusu

Makro düzenleme komutu kullanılarak gerçekleştirilir makrolar... iletişim kutusunda Makro, tarlada isim düzenlenecek makronun adı seçilir. İşlem, [Hata Ayıkla] düğmesine tıkladığınızda başlar. Var olmayan bir makronun adını belirtebilirsiniz. Daha sonra [Oluştur] düğmesine tıklarsanız, yeni bir makro oluşturulacak ve kullanıcı bunu VBA'ya kaydedebilecek.

[Hata Ayıkla] düğmesi, makronun içeriğini VBA'da görüntüleyen makro düzenleme penceresini açmak için kullanılır. Makro düzenleme penceresi normal bir belge penceresine benzer, ancak bir koordinat cetvelinin olmaması ve özel bir araç çubuğunun varlığı ile ayırt edilir. Birkaç makro işleme penceresi açılabilir. Makro metni, normal VBA program metniyle aynı şekilde düzenlenir. Bu durumda, metin düzenleme komutlarının çoğu kullanılabilir, örneğin komutlar kopyala ve Kesmek.

[Sil] düğmesine tıklamak belirtilen makroyu siler.

Makro düzenleme penceresini kapatmak için düzenleme penceresinin sistem menüsünü veya komutu kullanabilirsiniz. Kapat menüde Dosya... Bir makroyu düzenlemek ve hata ayıklamak için özel komutlar, silme satırındaki düğmelere basılarak yürütülür.

Kaynakça:

1. Musin K.A. "Microsoft Word'e Teknik Ek"

2. Borodin AI "Makroprogramlama"

MAKROLAR.

Çoğu kullanıcı, standart uygulama özelliklerini kullanarak Microsoft Office belgeleri oluşturur ve kullanır. Ancak Office, belgelerle çalışmayı otomatikleştirmek için geniş fırsatlar sunar - bu, VBA'da programlama ve makro kullanımıdır.

Visual Basic for Applications programlama dili olan VBA, makrolar oluşturmak için kullanılan Office uygulamalarında yerleşik bir programlama dilidir.

Makro ve makro kaydedici.

MS Office'te monoton komutları tekrarlamak yerine, bu komut dizisini otomatik olarak yürütecek bir makro oluşturabilirsiniz. Makro girmenizi sağlar tek bir komut grubuyla aynı görevi gerçekleştiren bir komut.

Makro, VBA'da yazılmış bir programdır. VBA, Visual Basic'in (Uygulama için) özel bir sürümüdür.

Office'te makro oluşturmanın 2 yolu vardır:

§ Kullanıcı eylemlerini kaydeden makro kaydedici

§ bir VBA penceresi açma ve VBA deyimlerini girme

Çoğu zaman kullanıcı, kaydedici tarafından kaydedilen makroyu düzeltmek için VBA'yı kullanır.

MS Office 2007-13'te makrolarla çalışmak için şeritte GELİŞTİRİCİ sekmesini görüntüleyin (Ofis / Kelime PARAMETRELERİ / ŞERİT AYARLARI düğmesi).

Kullanıcının makronun başlangıç ​​koşullarını düşünmesi gerekir, örneğin, seçilen parça ile bir şeyler yapılması gerekiyorsa, kayıt veya başlatmadan önce parça seçilmelidir.

Makro kaydı.

§ GELİŞTİRİCİ / MAKRO KAYDI sekmesinde, makroya bir ad verin. Ad boşluk içermemeli, bir harfle başlamalı ve özel karakterler içermemelidir. maksimum ad uzunluğu 80 karakterdir. Oluşturulan makroya yerleşik bir Microsoft Word makrosunun adıyla eşleşen bir ad verilirse, mevcut makro yenisiyle değiştirilir.

§ komutları yürüt

§ GELİŞTİRİCİ / KAYDI DURDUR sekmesi

Genellikle, makro Normal.dot şablonu için kullanılabilir, onunla birlikte otomatik olarak kaydedilir.

Makro çalıştırma.

§ GELİŞTİRİCİ / MAKROLAR sekmesinde istediğinizi seçin ve ÇALIŞTIR.



Hızlı Erişim Araç Çubuğundaki bir düğmeye ve/veya bir klavye kısayoluna makro atama.

§ veya OFİS düğmesi / Kelime PARAMETRELERİ / AYARLAR

§ veya makroya bir ad atarken uygun eylemleri seçin.

Bir makroya klavye kısayolları atarken, Worde'nin birçok kısayolu ayırdığını ve "ücretsiz" bir kombinasyon bulmanın kolay olmadığını unutmayın.

Bir makroyu silme.

§ GELİŞTİRİCİ / MAKROLAR sekmesinde istediğinizi seçin ve SİL.

Makronun metnini değiştirin.

Bir makro kaydederken, kaydedici VBA'da bir dizi metin talimatı kaydeder. Bu metinsel açıklamaya kaynak kodu denir. Görüntülenebilir ve düzeltilebilir:

§ GELİŞTİRİCİ / MAKROLAR sekmesinde istediğinizi seçin ve DEĞİŞTİR.

VBA düzenleyicisinden bir makro çalıştırmak için: ÇALIŞTIR düğmesi ()

Otomatik olarak yürütülen makroların oluşturulması.

Word'ün makrolar için 5 özel adı vardır

VBA - programlar basit bir eylemler dizisinden oluşur: program bir nesneye erişir, ona özellikler verir ve onunla eylemler gerçekleştirir. Her belge, paragraf, ... bir nesnedir. Örneğin, bir Seçim nesnesi bir seçimdir. Word'ün kendisi bir Uygulama nesnesidir (Bkz. Ekler 2,3).



Her nesnenin kendine has özellikleri vardır - özellikleri.

Birçok nesne, yöntem adı verilen eylemleri gerçekleştirir.

Örneğin,

ActiveDocument.Close (nesne - etkin belge, yöntem - kapat)

VBA sözdizimine göre ayırıcı noktadır.

Tipik olarak: nesne, nokta, yöntem ve/veya özellikler (nokta ile ayrılmış)

Bir nesne üzerinde sağ fare - yöntemlerin, özelliklerin listesi (Özellikleri / Yöntemleri Listele)

With… .. End With dizisi, bir nesne için adını birçok kez tekrarlamadan birden çok yöntem/özellik belirtmenize olanak tanır.

Pratik görev 1.

Aşağıdaki komutları yazacağımız "my_first_macro" isimli bir makro yazalım:

§ Yatay sayfa yönlendirmesi

§ Ölçeği görüntüle - %33

Sonuç olarak aşağıdaki kodu alıyoruz.

Alt my_first_macro ()

"

"my_first_macro Makrosu

"03.12.07 tarihinde kaydedilen makro

ActiveDocument.PageSetup ile

LineNumbering.Active = Yanlış

Oryantasyon = wdOrientLandscape

TopMargin = SantimetreToPoints (1.5)

BottomMargin = SantimetreToPoints (3)

Sol Kenar Boşluğu = SantimetreToPoints (2)

.RightMargin = SantimetreToPoints (2)

Oluk = SantimetreToPoints (0)

HeaderDistance = SantimetreToPoints (1,25)

FooterDistance = SantimetreToPoints (1,25)

PageWidth = SantimetreToPoints (29.7)

PageHeight = SantimetreToPoints (21)

FirstPageTray = wdPrinterDefaultBin

OtherPagesTray = wdPrinterDefaultBin

SectionStart = wdSectionNewPage

OddAndEvenPagesHeaderFooter = Yanlış

DifferentFirstPageHeaderFooter = False

VerticalAlignment = wdAlignVerticalTop

SuppressEndnotes = Yanlış

MirrorMargins = Yanlış

TwoPagesOnOne = Yanlış

OlukPos = wdGutterPosLeft

ActiveWindow.ActivePane.View.Zoom.Percentage = 33

Alt Bitiş

Bu makronun metnini düzeltebilirsiniz, örneğin,

§ yüzdeyi değiştirin, örneğin 33 ila 42

§ alanları değiştir

§ satırında False'ı True ile değiştirin.LineNumbering.Active = False (satırların otomatik numaralandırılması olacaktır)

§ satırda değiştirin.Yönlendirme = wdOrientManzaraüzerinde wdOrientPortre, kağıt yönü dikey olacak

Kaydedildikten sonra, bu makro başka herhangi bir belge için yeniden çalıştırılabilir.

Pratik görev 2.

Dosya açarken mesaj kutusu oluşturan bir makro oluşturalım.

MessageBox, ekranda görünen bir mesaj kutusudur.

Herhangi bir MS Word dosyasını açtığınızda bir MessageBox görüntülemek için AutoOpen adında bir makro oluşturmanız ve içindeki msgbox işlevini çağırmanız gerekir. Bunun gibi görünecek:

Alt Otomatik Açma ()

"Bu işlev, bir belgeyi açarken çağrılır.

"Mesaj Kutusunun Görüntülenmesi

MsgBox "Merhaba arkadaşım!"

Eylem sırası (seçeneklerden biri):

§ GELİŞTİRİCİ / MAKROLAR sekmesi, herhangi bir isim verin ve OLUŞTUR

§ VBA düzenleyici penceresinde, adını değiştirin ve programın metnini VBA'da yazdırın

§ Kayıt etmek

§ Başlatmak

Şimdi, her belgeyi açtığımızda bir mesaj alacağız.

Mesaj kutusunu görüntüleme komutu şöyle görünür:

MsgBox (promt, buton, başlık, yardım dosyası)

Promt, mesaj kutusunda görünecek metni belirten gerekli bir argümandır.

Düğme - mesaj kutusunun türünü, Tamam, İptal, Durdur, Atla vb. düğmelerin varlığını tanımlayan isteğe bağlı bir argüman.

Başlık - pencerenin başlığını belirten isteğe bağlı bir argüman

· Yardım dosyası– kullanıcı F1'e basarsa hangi yardım dosyasının açılacağını belirten isteğe bağlı bir argüman

Pratik görev 3.

Basit bir iletişim kutusu oluşturma.

Bir iletişim kutusu oluşturmak için form adı verilen görsel bir nesne oluşturmanız gerekir. Form, üzerine kontroller (düğmeler, radyo düğmeleri, onay kutuları vb.) yerleştirebileceğiniz bir pencerenin analogudur. Her form, kullanıcı arabiriminin bir parçasıdır. Her form bir nesnedir ve sırayla her biri ayrı ayrı kontrol edilebilen birçok nesne içerir.

Form oluşturma:

§ VBA penceresi (ALT + F11)

INSERT / New Form veya UserForm (yeni bir form ekleyin)

§ Özellikler penceresinde formun özelliklerini yapılandırabilirsiniz, örneğin Caption özelliği forma bir ad vermenizi sağlar.

§ Araç Kutusu panelini kullanarak formdaki kontrolleri ayarlayın:

· Etiket - yazı

CommandButton - bir eylemi gerçekleştirmek için bir komut düğmesi

TextBox -metin alanı

Resim - çizim

ChtckBox - onay kutusu

§ Her öğenin çalışmasını özelleştiriyoruz. Örneğin, KomutDüğmesine 2 tıklama, bu düğmeye basıldığında yürütülmesi gereken VBA deyimlerini yazmanıza izin verecektir.

Bir makro çalıştırdığınızda böyle bir iletişim kutusunun görünmesi için, makroya aşağıdaki satırları eklemeniz gerekir:

UserForm1'i Yükle

KullanıcıForm1.Göster

Çünkü VBA'ya hakim olmak, algoritmaların temelleri hakkında çok fazla zaman ve bilgi gerektirir, kullanıcılar genellikle bir makro kaydedici kullanarak Word komutlarını kaydeder, ardından bir makro düzeltir ve / veya ekler.


Konunun devamı:
Yönlendiriciler

Standart gadget'lar, Windows OC'nin modern sürümlerinden koşulsuz olarak kaldırılmıştır. Ancak kullanıcılar iyi bir şeyi kaybetmeye alışkın değiller ve bu nedenle aktif olarak analogları kullanıyorlar. Çok önceden ...