Yazdır

Microsoft Access 2010 Dersleri : Formun Kayıt Kaynağını VBA'da Kod İle Değiştirelim

on .

Access 2010 derslerine uzun bir ara vermek zorunda kalmıştık. Bu dersimizde VBA ekranında kodlar ile Formun Kayıt Kaynağı'nı değiştireceğiz.

Öncelikle 'Formun Kayıt Kaynağı' nedir bilmeyen yeni Access kullanıcıları için açıklama yapalım. Bir formunuz varsa bunu genelde iki yolla yapmışsınızdır. Form sihirbazı ya da boş form tasarımı yolu kullanılmıştır. Genelde bu şekilde form yapılır. Eğer boş form derseniz bu form adından anlaşıldığı üzere hiç bir metin kutusu, buton vs. olmayan/kayıt göstermeyen formdur ki dersimizin konusu değil.

Diğer yol yani sihirbazlar aracılığı ile form yaptıysanız bir tabloyu ya da sorguyu seçmişsinizdir ve form sihirbazının işi bittiği zaman form üzerinde seçtiğiniz tablo veya sorguda yer alan alanlardaki kayıtları gösteren metin kutuları olur. Formda kayıtlar arasında dolaşacak bir buton eklerseniz ya da liste kutusundan vb. denetimde kayıtlara tıklayarak seçerseniz seçtiğiniz tablo veya sorgudaki kayıtı görürsünüz. İşte formunuzda gösterilen kayıtların kaynağı bu tablo veya sorgulardır.

Eğer yanlışlıkla ya da öylesine bir tablo/sorgu seçtiyseniz sonrasında değişiklik yapmak isterseniz ne olacak? Bir daha baştanmı form sihirbazını açıp tablo/sorgu seçeceksiniz elbette hayır.

Formunuzu tasarım modunda açın. Formda boş bir alanda farenin sağ tuşuna tıklayınca en altta yer alan 'Form Özellikleri' seçeneğini tıklayın. Özellikler penceresinde yer alan sekmelerden Veri sekmesini tıklayın. İlk sırada yer alan 'Kayıt Kaynağı' özelliğini artık istediğiniz gibi değiştirebilirsiniz.

Access 2010 Formu Tasarım Modunda Açınca Özelliklere Geçiş Yapmak

Şimdi gelelim dersimizin asıl konusuna. Aklınıza "Yukarıda zaten formun kayıt kaynağını nasıl değiştireceğini anlattın. Neden kod ile değiştirmek gibi bir maceraya girelim?" sorusu gelebilir. Aslında haklısınız normalde zaten ben formu tasarlarken kaynağını belirtmiş tasarlamışım formumu ancak kod ile değiştirmenin çok büyük avantajları var.

Programınızı yaptınız ve iş yerinizde kullanılıyor ya da müşterilere satıyorsunuz. Programda yapılan işler gereği aynı formda/raporda farklı bilgiler göstermeniz gerekiyor. Mesela yeni bir ürün alırken kayıt amaçlı formunuz var ancak satış yaparkende aynı form tasarımını kullanacaksınız yeni bir form yapmanıza gerek kalmadan tekrar aynı formda iki iş yapabilirsiniz.

ADO kodlarını kullanıyorsanız formunuzun ve programınızın daha hızlı çalışması adına bu yöntemi kullanabilirsiniz. Eğer kod ile kayıt kaynağını belirlemeden özelliklerden bu işi yapacak olursanız çok kullanıcılı ağ ortamlarında programınız yavaşlayacaktır. Örnek senaryomuz bir fabrikada/işletmede ağ ortamında ortak kullanılan Access programı olsun:

Kullanıcı programı açtı diyelim sonrasında da Stoklar formunu açtı ve işlemlerini yaptı. Bu süre içinde ana programdan Stoklar tablosundaki tüm kayıtları tüm alanları ile birlikte ister. Ana program bu bilgileri forma gönderir ancak Kullanıcı ile Ana Program arasındaki bağlantı kopmaz. Belirli aralıklarla kayıtlarda değişiklik varmı kontrol eder Access otomatik olarak. Ana Program'ı kullanan 15 kullanıcı olduğunu düşünürseniz sürekli bilgi isteği, sorgulama, güncelleme, ekleme vb. işlemler yapılacaktır. Halbuki biz sadece belirli işlemler sırasında formun kayıt kaynağını belirlemiş olsaydık o zaman daha verimli bir çalışma şekli olacaktı.

Konu fazla dağılmadan biz örnek bir uygulama yapalım ki aklımıza daha iyi yerleşsin:

Boş bir Access dosyası açıyorum ve ismine Formun_Kayit_Kaynagi.accdb ismini veriyorum. Hemen bir tane tabloyu tasarım modunda yeni oluşturuyorum.

Tasarım Modunda Tablo Oluşturuyoruz

Aşağıdaki alanları ekledim:

  • alis_id , Birincil Anahtar ve Otomatik Sayı türünde,
  • alis_tarihi , Tarih/Saat türünde Biçim Kısa Tarih,
  • urun_adi , Metin türünde Alan Boyutu 15

Microsoft Access 2010 da Tablo Oluşturduk

Tabloyu kapatırken isim sorunca tbl_alis ismini veriyorum. Aynı tabloyu kopyalayıp tbl_satis adıyla yapıştırıyorum. Tasarım modunda alan isimlerini değiştiriyorum:

Microsoft Access 2010 da Tablo Kopyaladık

  • satis_id,
  • satis_tarihi
  • urun_adi

    Microsoft Access 2010 Form Sihirbazı

Sadece alan adlarını değiştirdim özelliklerini aynı bıraktım. Şimdi tbl_alis isimli tabloyu bir kere tıklayıp seçili hale getiriyorum ve Access menüden (Ribbon) yeni bir formu otomatik olarak ürettiriyorum.

Access 2010 da Form Sihirbazında Kaynak Olarak Tablo Seçilmesi

Görüldüğü gibi tbl_alis tablomuz içindeki tüm alanlar metin kutusu olarak formun üzerine yerleştirilmiş vaziyette.

Form Sihirbazı Kullanınca Tablodaki Alanların Denetimleri Otomatik Forma Eklenir

Formumuz şu andaki görünümüne Form Görünümü denilmektedir. Programın aktif olarak kullanıcılar tarafından kullanıldığı şekli Form Görünümü halidir. Access 2010 menüsü olan Ribbon'da Giriş Sekmesi içinde ilk sıradaki grup olan Görünümlere tıklayarak Tasarım Görünümüne geçiş yapalım.

Form Görünümünden Tasarım Görünümüne Geçiş Yapalım

Tasarım Görünümüne geçiş yaptıktan sonra Form ve üzerindeki tüm denetimlerin özelliklerini değiştirebiliriz. Özellikler penceresi sizde gözükmüyorsa Tasarım Görünümünde iken formun üzerinde boş bir alanda farenin sağ tuşuna tıklatın ve açılan menüde altta yer alan Form Özellikleri'ni tıklayın.

Tasarım Görünümündeyken Özellikler Penceresini Açmak

Diğer bir yol cetvellerin bulunduğu yatay ve dikey eksenlerin buluştuğu sol üst köşeye çift tıklayabilirsiniz. Açılan Özellik penceresinde yer alan sekmelerden Veri sekmesine tıklayınca ilk sırada yer alan Kayıt Kaynağı özelliğini görebilirsiniz. Şu anda seçili olarak tbl_alis gözüküyor ancak isterseniz sağ tarafında bulunan aşağı ok butonu ile farklı bir tablo seçebilirsiniz. Biz listeden tbl_satis isimli tabloyu seçerek formun kayıt kaynağını değiştiriyoruz.

Formun Kayıt Kaynağını Başka Bir Tablo Yaptık

Kayıt kaynağı özelliğinde tbl_alis tablosunun gelmesinin sebebini bir kere daha hatırlatmak istiyorum. Biz form sihirbazına tıklamadan önce tablolar kısmından tbl_alis tablosunu seçili hale getirmiştik. Zaten bundan dolayı da form üzerinde tbl_alis tablosuna ait alanlar (alis_is, alis_tarihi, urun_adi) otomatik olarak eklenildi. Bir diğer ipucu formu kapatınca karşımıza çıkacaktır. Formun adına varsayılan olarak tbl_alis verildiğini göreceksiniz. Biz burada yazılı ismi frm_formun_kayit_kaynagi olacak şekilde değiştirelim ve formumuzu kapatalım.

Access Formu Kapatırken Tablo Adı Otomatik Olarak Karşımıza Çıkar

Formumuzu tekrar açtığımızda metin kutularında #Ad? hatasını göreceksiniz. Formun kayıt kaynağını tbl_satis olarak değiştirdiğimiz için bu hatayı alırız.

Microsoft Access #Ad? Hatası Neden Verir?

Yalnız yine dikkat edecek olursanız urun_adi isimli metin kutusunda bu hatayı almayız hatta değer olarak girdiğimiz kaydı görürüz. Hatayı aldık çünkü hata veren metin kutularının Denetim Kaynağı eski tbl_alis tablosundaki alanların isimleriydi.

Formdaki Denetim Kaynağı Nasıl Değiştirilir?

Tasarım Görünümünde iken yukarıdaki resimde göreceğiniz gibi #Ad? hatası veren metin kutularının sol üst köşesinde yeşil üçgen bulunur. İlk metin kutumuzun Denetim Kaynağına bakınca isim olarak tbl_alis tablosundaki alis_id alanının adının değişmediğini görüyoruz. Demek ki formun kayıt kaynağı değiştirildiğinde form üzerindeki metin kutuları, açılan kutular vb. denetimlerin kaynakları yeni tablo/sorgularından otomatik olarak alınmıyor ki doğru olanıda bu zaten.

Şimdi tek tek metin kutularının seçip Denetim Kaynağından ilgili alan adlarını seçiyoruz. Unutmamak gerekir ki Denetim Kaynağı olarak tbl_satis içindeki alanları görebilmek için öncelikli olarak Formun Kayıt Kaynağı olarak tbl_satis ayarlanmalıdır.

Form Üzerindeki Denetimlerin Bağlanacağı Alanları Seçiyoruz

Tüm denetimlerin kaynak alanları Denetim Kaynağından seçilince artık yeşil hata üçgenini görmememiz gerekmektedir. Eğer hala yeşil üçgenlerden görüyorsanız tekrar incelemek zorunda kalacaksınız.

Yeşil Üçgenler Hatalar Giderilince Kayboldu

Form Görünümüne geçiş yaptığımızda ise tüm metin kutularına ilgili bilgilerin başarıyla getirildiğini görebiliyoruz.

Dersimiz şimdilik burada bitti. Daha işin VBA boyutuna hiç değinmedik ancak kısa zamanda dersin devamını eklemiş oluruz inşaallah.

 


Yorumlar   

 
0 #1 Sabir 08-02-2012 18:36
Salam Zumrut beg Ben bir öyrənci formu yaptim ama isterdim ki her bir öyrencinin ismini ve ya öyrenci kodunu secerken (girerken) hemin öyrencinin resmi formun sag yaninda qoydugum Foto kutusunda görüksünş Bunu nasıl yapa bilerem? bunlari bene anlatsan minnetdar olaram (Eposta- sabirşideal"mai lşru)
Alıntı
 

Yorum ekle


Güvenlik kodu
Yenile

Tags: access, 2010, uzun, kayıt, dersimizde, formun, kalmıştık, zorunda, kaynağı'nı, değiştireceğiz, vermek, kodlar, ekranında

Share:Del.icio.us!Digg!Facebook!Google!Live!Reddit!

Benzer Konular