Arkadaşlar, hemen herkesin formlardaki bir açılan kutusan diğer kutulara veri getirme konusunda zaman zaman sıkıntıları olmuştur. Genellikle yeni başlayan arkadaşlar bununla ilgili pekçok soru sormaktalar. Ben de böyle bir döküman ile bu konudaki alternatif yolları göstererek, kullanımı oldukça kolay olan bir tanesini anlatacağım. Diğer yollardan özellikle Dlookup (düşey ara) yöntemi çok defalar anlatıldı, forumda bununla ilgili örnekler mevcut. O yüzden ona değinmeyeceğim. Belki talep olursa onu da daha sonra bir başka ders olarak ekleriz, kimbilir?
Diğer bir yöntem ise ADO kodlarıyla kayıt getirmek olabilir. Bu yöntemi de bu yazıda ele almayacağız.
GELELİM BİZİM ÖRNEĞE
Bir formda 1 tane açılan kutumuz ve 3-4 tane metin kutumuz olsun. Açılan kutumuzda müşteri numarası olsun. Metin kutuları ise
metin1: Müşteri adı-soyadı
Metin2: Müşteri telefonu
Metin3: Müşteri adresi
şeklinde olsun. Biz açılan kutudan bir müşteri numarası seçtiğimizde (Tabii müşterinin adı-soyadını da görerek) diğer kutulara otomatik olarak veri gelsin.
BUNU NASIL YAPARIZ?
Bunun için açılan kutumuzu sütunlu yapıp 4 tane sütun belirliyoruz. Bu sütunları tablodaki Müşterino-Müşteri adı soyadı- Müşteri telefonu ve Müşteri adresi ile sorgu üzerinden ilişkilendiriyoruz. Sütunları sırasıyla müşteri no'dan itibaren sırasıyla seçiyoruz. Metin kutusu Alanlarının denetim kaynakları "ilişkisiz" olsun. Şimdi adım adım gidelim.
1- Sütunların boyutlarını şöyle belirleyelim:
Müşteri no: (1 cm) Müşteri adı Soyadı (4 cm) Müşteri Tel (0cm) Müşteri Adresi (0cm)
Bunu sütun genişlikleri bölümüne ve her değerin arasına ; koyarak giriyoruz.
1;4;0;0 gibi
Böylece aslında müşteri no üzerinden işlem yapacağız ama alanda müşteri no ve müşteri adı-soyadı görülecek.Seçim yapıldıktan sonta bu alanda sadece müşteri no görülecek.
2- Bu açılan kutunun güncelleme sonrasında olayına aşağıdaki kodları yazalım.
Me.Metin1 = musterino.column(1)
Me.Metin2 = musterino.column(2)
Me.Metin3 = musterino.column(3)
Tabii ki kayıtların arasında gezinirken verilerin tekrar sorgulanması için formun geçerli olduğunda olayına da
Me.Metin1 = musterino.Column(1)
Me.Metin2 = musterino.Column(2)
Me.Metin3 = musterino.Column(3)
kodlarını yerleştirelim.
3- Verilerle yapılan işlemlerin kaydedilmesi için ikinci bir tabloya daha ihtiyaç duyulur. Bu tabloya da işlemler adını verdik ve sadece açılan kutu ile ilişkilendirdik. Yani sadece açılan kutu verisi kaydediliyor.
Böylece metin kutularına gereken bilgiler açılan kutu seçimine görer alınmış olur.
Not: (12.09.2010'da ekledim...)
Bu yöntemin bana göre hızla ilgili faydaları var diye düşünüyordum ama seçilen müşteriye ait form üzerinde bulunan bir açılan kutuya veri alınması da belli oranda bir zaman almaktadır. Olay sadece pratik veri getirme amacıyla verimli olacaktır, hız konusunda fikrim değişti.
Şimdi hazırladığım örneği inceleyin. Yukarda anlatılan yöntemi öğretmek amacıyla hazırladığım bir örnektir. Yazılanlara göre kendiniz bir form üzerinde denemelar yapın, başaramazsanız örneği inceleyin. Ama kesinlikle öğrenin))
İnadına, ille de Accesstr.net...