Skip to main content

AccessTr.neT


Form Üzerinden Veri Arama

ozanakkaya
ozanakkaya
79
74627

Form Üzerinden Veri Arama

#1
Öncelikle, anlatımda anlaşılmayan, kafanıza takılan bir yer var ise mutlaka cevap olarak yazınız. Sizin anlamadığınız yeri başka bir arkadaşda anlamamış olabilir. Anlamadığınız yeri belirtirseniz konuyu anlaşılacak şekilde güncelleyebiliriz.

Liste kutusunda arama yapma ile ilgili sitede birçok örnek bulunmakta, başvuru kaynağı olması açısından benim bildiğim en iyi yöntemi açıklayıcı olarak anlatacağım.

Form üzerine;
- tablodaki alanları içeren metin kutularını,
- 1 adet liste kutusu,
- Arama işleminde kullanılmak üzere 2 adet metin kutusu ekliyoruz, birinin adı arama, diğeri gecici (bkz. Resim-1)

[Resim: do.php?img=5332]


Daha sonra eklediğimiz Liste Kutusunun özelliklerinden "Satır Kaynağı" kısmındaki "..." tıklayıp sorgu oluşturucuyu açıyoruz.(Bkz.Resim-2)

[Resim: do.php?img=5333]


Sorgu oluşturucu açıldığında "Tablo Göster" açılır, açılmaz ise boş bir alana sağ tıklayıp "Tablo gösteri" tıklıyoruz. "Tablo Göster"deki listeden form ile ilişkili tablomuzu seçiyoruz ve ekle butonunu tıklayıp "Tablo Göster"i kapatıyoruz. (Bkz.Resim3)

[Resim: do.php?img=5331]

Tablodan Arama yapmak istediğimiz alanları Sorgu Oluşturucudaki sütunlara ekliyoruz. (Bkz.Resim-4)
[Resim: do.php?img=5334]

Daha sonra sorgu oluşturucudaki boş sütuna "Arama: [alan1] & "* " & [alan2] şeklinde alanları ekliyoruz.
Bizim örneğimizde arama yapmak istediğiniz alanları
Arama: [ADI] & "* " & [SOYADI] & "*" & [ANAADI] & "*" & [BABAADI] & "*" & [TCKIMLIKNO]
şeklinde ekledik. Bu sütunun altındaki ölçüt alanına da
Visual Basic Code
Like "*" & [Forms]![formadı]![aramakutusuadı] & "*"
şeklinde ölçüt yazıyoruz. Bizim Örneğimize göre formadı: Form1, aramakutusu adı: gecici(Bkz.Resim-5 )
[Resim: do.php?img=5335]

Daha sonra sorgu oluşturucuyu kaydedip kapatıyoruz. Liste Kutusunun özelliklerinden Sütun sayısına sorguya kaç tane alan eklediysek sayısını, Sütun genişliklerinede listede görünmesini istediğiniz genişlikleri yazıyoruz. Bizim örneğimize göre sorguda 7 adet sütun var.
Liste kutusunda görünmesini istemediğimiz SNUM ve Arama isimli sütunlar için genişlik değerine 0cm yazıyoruz. Sonuç olarak "Sütun Genişlikleri" özelliğine "0cm;2cm;2cm;2cm;2cm;2cm;0cm" yazıyoruz. (Bkz. Resim-6)
[Resim: do.php?img=5336]

Form üzerinde bulunan arama isimli metin kutusunun Değiştiğinde olayına;
Visual Basic Code
Me.gecici = Me.arama.Text
Me.Liste1.Requery
yazıyoruz.

gecici adındaki metin kutusunun Güncelleştirme Sonrasında olayına da

Visual Basic Code
Me.Liste1.Requery

yazıyoruz.
gecici isimli metin kutusunun Görünür özelliğini "Hayır" olarak değiştiriyoruz.


Formu kaydedip form görünümünde açıyoruz. Arama Alanına 01 yazdığımızda Kamil ile Süleyman'ı (Tc kimlik numaralarında 01 geçtiği için), Ay yazdığımızda Kamil ile Alper'i (anne isimlerinde "ay" geçiyor,) ü yazdığımızda da Alper ile Süleyman'ı (birinin soyadında, diğerinin adında ü var) buluyor.

Son olarak liste kutusunun tıklandığında olayına aşağıdaki kodu yazın.

Visual Basic Code
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[SNUM] = " & Str(Nz(Me![Liste1], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark

Dediğim gibi, bu benim bildiğim en iyi yöntem, bildiğim kadarıyla anlatmaya çalıştım. Anlatımımda bir kusurum veya unuttuğum bir şey oldu ise başta sn furens olmak üzere özür dilerim. Basit bir örnek ektedir.
.rar FormdaArama.rar (Dosya Boyutu: 23,55 KB | İndirme Sayısı: 185)
"Boş Örnek Eklerim, Yapıp Verirler" demeyin, örneğinizi hazırlayın.
Komplike kod talebiniz var ise İletişim bağlantısından bize ulaşın. 
Cebelleşmezsen Öğrenemezsin. 
Cevapla
#2
(23/03/2009 13:00)ozanakkaya Adlı Kullanıcıdan Alıntı: Öncelikle, anlatımda anlaşılmayan, kafanıza takılan bir yer var ise mutlaka cevap olarak yazınız. Sizin anlamadığınız yeri başka bir arkadaşda anlamamış olabilir. Anlamadığınız yeri belirtirseniz konuyu anlaşılacak şekilde güncelleyebiliriz.

Liste kutusunda arama yapma ile ilgili sitede birçok örnek bulunmakta, başvuru kaynağı olması açısından benim bildiğim en iyi yöntemi açıklayıcı olarak anlatacağım.

Form üzerine;
- tablodaki alanları içeren metin kutularını,
- 1 adet liste kutusu,
- Arama işleminde kullanılmak üzere 2 adet metin kutusu ekliyoruz, birinin adı arama, diğeri gecici (bkz. Resim-1)

[Resim: do.php?img=5332]


Daha sonra eklediğimiz Liste Kutusunun özelliklerinden "Satır Kaynağı" kısmındaki "..." tıklayıp sorgu oluşturucuyu açıyoruz.(Bkz.Resim-2)

[Resim: do.php?img=5333]


Sorgu oluşturucu açıldığında "Tablo Göster" açılır, açılmaz ise boş bir alana sağ tıklayıp "Tablo gösteri" tıklıyoruz. "Tablo Göster"deki listeden form ile ilişkili tablomuzu seçiyoruz ve ekle butonunu tıklayıp "Tablo Göster"i kapatıyoruz. (Bkz.Resim3)

[Resim: do.php?img=5331]

Tablodan Arama yapmak istediğimiz alanları Sorgu Oluşturucudaki sütunlara ekliyoruz. (Bkz.Resim-4)
[Resim: do.php?img=5334]

Daha sonra sorgu oluşturucudaki boş sütuna "Arama: [alan1] & "* " & [alan2] şeklinde alanları ekliyoruz.
Bizim örneğimizde arama yapmak istediğiniz alanları
Arama: [ADI] & "* " & [SOYADI] & "*" & [ANAADI] & "*" & [BABAADI] & "*" & [TCKIMLIKNO]
şeklinde ekledik. Bu sütunun altındaki ölçüt alanına da
Visual Basic Code
Like "*" & [Forms]![formadı]![aramakutusuadı] & "*"
şeklinde ölçüt yazıyoruz. Bizim Örneğimize göre formadı: Form1, aramakutusu adı: gecici(Bkz.Resim-5 )
[Resim: do.php?img=5335]

Daha sonra sorgu oluşturucuyu kaydedip kapatıyoruz. Liste Kutusunun özelliklerinden Sütun sayısına sorguya kaç tane alan eklediysek sayısını, Sütun genişliklerinede listede görünmesini istediğiniz genişlikleri yazıyoruz. Bizim örneğimize göre sorguda 7 adet sütun var.
Liste kutusunda görünmesini istemediğimiz SNUM ve Arama isimli sütunlar için genişlik değerine 0cm yazıyoruz. Sonuç olarak "Sütun Genişlikleri" özelliğine "0cm;2cm;2cm;2cm;2cm;2cm;0cm" yazıyoruz. (Bkz. Resim-6)
[Resim: do.php?img=5336]

Form üzerinde bulunan arama isimli metin kutusunun Değiştiğinde olayına;
Visual Basic Code
Me.gecici = Me.arama.Text
Me.Liste1.Requery
yazıyoruz.

gecici adındaki metin kutusunun Güncelleştirme Sonrasında olayına da

Visual Basic Code
Me.Liste1.Requery

yazıyoruz.
gecici isimli metin kutusunun Görünür özelliğini "Hayır" olarak değiştiriyoruz.


Formu kaydedip form görünümünde açıyoruz. Arama Alanına 01 yazdığımızda Kamil ile Süleyman'ı (Tc kimlik numaralarında 01 geçtiği için), Ay yazdığımızda Kamil ile Alper'i (anne isimlerinde "ay" geçiyor,) ü yazdığımızda da Alper ile Süleyman'ı (birinin soyadında, diğerinin adında ü var) buluyor.

Son olarak liste kutusunun tıklandığında olayına aşağıdaki kodu yazın.

Visual Basic Code
Dim rs As Object
Set rs = Me.Recordset.Clone
rs.FindFirst "[SNUM] = " & Str(Nz(Me![Liste1], 0))
If Not rs.EOF Then Me.Bookmark = rs.Bookmark

Dediğim gibi, bu benim bildiğim en iyi yöntem, bildiğim kadarıyla anlatmaya çalıştım. Anlatımımda bir kusurum veya unuttuğum bir şey oldu ise başta sn furens olmak üzere özür dilerim. Basit bir örnek ektedir.





Sayın Seledgeab bu güzel anlatımınız için teşekkürler.
Access ile yaşam çok güzel
Cevapla
#3
Paylaşım İçin Teşekkürler Sayın Sledgeab Hocam .
Ellerine sağlık....
Kaplumbağa ya dikkat et...
Sadece  başını çıkartıp risk aldığında ilerleyebiliyor...
Cevapla
#4
Sayın sledgeab hocam;

Her zamanki gibi, sade ve güzel anlatımınızla olayı, bizim anlayabileceğimiz yalın duruma getirdiniz.

Başarılar ve iyi çalışmalar.

Teşekkürler. Selam ve sevgiler.
Cevapla
#5
üstat teşekürler, çok faydalı bir örnek bence.
Cevapla
#6
Sayın hocam "form üzerinden veriyi süzerek alma" başlığı daha uygun olmaz mı?
Filtrelemede Ölçüt
Like"*"&[metin kutusu]&"*"
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da