Alan içinde arama
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Alan içinde arama
Merhaba Arkadaşlar;
ADO Database içinde bir alanda arama yapmak istiyorum. İlgili alanı baştan sona arayıp, bulunmayan en küçük rakamı bir Edit e yazdırmak istiyorum.
şimdiden teşekkürler.
ADO Database içinde bir alanda arama yapmak istiyorum. İlgili alanı baştan sona arayıp, bulunmayan en küçük rakamı bir Edit e yazdırmak istiyorum.
şimdiden teşekkürler.
Re: Alan içinde arama
Merhaba,
TAdoQuery.Locate() fonksiyonu ile alanlarda arama yapmanız mümkün. Bu fonksiyon sizin için tüm kolon bilgisini baştan sona arar.
Aşağıdaki şekilde kullanıldığı zaman *sadece* birebir aynı değeri bulursa imleç ilgili kayıt üzerine gider.
Aşağıdaki şekilde kullanıldığı zaman imleç birebir aynı değer *veya* en yakın değere gider.
Kullandığınız database veya tablo yapısı ile ilgili hiç bilgi vermemişsiniz. Hangi kolon içinde arama yapmak istediğinizi bilmiyoruz. Bu durumda "Bulunamayan en küçük değere gitmek" ile ne istediğiniz de pek net anlaşılmıyor. Bir ihtimal yukarıdaki ikinci örneğin yaptığı işi anlatmaya çalışıyorsunuz gibi.
TAdoQuery.Locate() fonksiyonu ile alanlarda arama yapmanız mümkün. Bu fonksiyon sizin için tüm kolon bilgisini baştan sona arar.
Aşağıdaki şekilde kullanıldığı zaman *sadece* birebir aynı değeri bulursa imleç ilgili kayıt üzerine gider.
Kod: Tümünü seç
TAdoQuery.Locate('alanadi', 'aranandeger', []);
Kod: Tümünü seç
TAdoQuery.Locate('alanadi', 'aranandeger', [loPartialKey, loCaseInsensitive]);
Re: Alan içinde arama
hocam cevap için teşekkürler. Kusura bakmayın yeterli olacağını sanmıştım.
ADOTable1 MSaccess veritabanına bağlı. Bu tablomda Sayılar diye bir alanım var. Bu alan içinde örneğin.
ADOTable1sayilar
5
23
6
1
18
4
şeklinde veriler var. Yapmak istediğim Bir butona basınca bu alan taransın ve bu alanda bulunmayan en küçük rakam bir Edite yazılsın istiyorum. yani bu örneğe göre bu rakam 2. Bunun bulunup Edite yazılması lazım. Umarım anlatabilmişimdir. Saygılar...
ADOTable1 MSaccess veritabanına bağlı. Bu tablomda Sayılar diye bir alanım var. Bu alan içinde örneğin.
ADOTable1sayilar
5
23
6
1
18
4
şeklinde veriler var. Yapmak istediğim Bir butona basınca bu alan taransın ve bu alanda bulunmayan en küçük rakam bir Edite yazılsın istiyorum. yani bu örneğe göre bu rakam 2. Bunun bulunup Edite yazılması lazım. Umarım anlatabilmişimdir. Saygılar...
Re: Alan içinde arama
Aşağıdaki gibi bir kod işinizi görebilir:
Kod: Tümünü seç
TAdoQuery.SQL.Text := 'select min(sayilar) from tabloadi';
TAdoQuery.Open();
Edit1.Text := TAdoQuery.Fields[0].AsString;
TAdoQuery.Close();
Re: Alan içinde arama
arkadaşlar yardımlarınız için teşekkürler.Ancak benim istediğim sayilar alanındaki en küçük sayıyı bulmak değil. Tam tersi bu alanda bulunmayan, sıfırdan büyük en küçük sayı nedir amacım o sayıyı tespit etmek.
- greenegitim
- Üye
- Mesajlar: 713
- Kayıt: 28 Nis 2011 10:33
- Konum: İstanbul
Re: Alan içinde arama
sayıları listelediniz diyelim çıkan sonuç
6
9
11
17
12
sizin istediğiniz programın bu listeden kaç sonucunu vermesi gerekiyor?
sıfırdan büyük en küçük tam sayı her zaman 1 dir
amacınız arada bu boş kalan sayıları doldurmak mıdır küçükten başlayarak?
6
9
11
17
12
sizin istediğiniz programın bu listeden kaç sonucunu vermesi gerekiyor?
sıfırdan büyük en küçük tam sayı her zaman 1 dir
amacınız arada bu boş kalan sayıları doldurmak mıdır küçükten başlayarak?
Mücadele güzelleştirir!
Re: Alan içinde arama
sayın greenegitim, tabiki sıfırdan büyük en küçük tamsayı herzaman "1" dir. sizin verdiğiniz örnekte tabiki bu "1". Ancak "1" benim sayilar alanımda varsa o zaman aradığım "1" olmaz; örneğin "2" yoksa "2" olur, "2" de varsa "3" yoksa, 3 olur. Neden anlatamadığımı bende anlamadım. yukarıda verdiğim örnekte herşey açık aslında. sayilar alanında OLMAYAN en küçük sayıyı arıyorum arkadaşlar. bu sayıyı bir edite yazdırıp tespit etmem gerekiyor. örnek
Sayilar
1
2
3
5
11
23
burada arama yaptığımda Edit'e "4" rakamını yazması lazım
Sayilar
1
2
3
5
11
23
burada arama yaptığımda Edit'e "4" rakamını yazması lazım
- greenegitim
- Üye
- Mesajlar: 713
- Kayıt: 28 Nis 2011 10:33
- Konum: İstanbul
Re: Alan içinde arama
Kod: Tümünü seç
select trz
from
(select trz.id, (select count(*) from tablo where id<=trz.id) as trz
from tablo as trz) as trz2
left join tablo on trz2.trz = tablo.id
where tablo.id is null order by trz asc
Kaynak:
http://www.access-sql.com/Konu-aradaki- ... ari-bulmak
Mücadele güzelleştirir!