comboboxla kayıt seçimi yapmak
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
comboboxla kayıt seçimi yapmak
merhabalar
Cari formuma bir combobox koyup bu comboboxta cari tablomdaki firma kodu ve firma adını aynı comboboxtan seçtirip, seçilen firmaya göre işlem yaptırtmak istiyorum. (Firma_kodu ve Firma_adı aynı tabloda)
bir comboboxta 2 alanı birden göstermek mümkünmü?
yada bu işi nasıl yapabilirim? combobox dışında da bir çözümde olabilir
ama kullanıcı açısından en kullanışlı yol combobox olur diye düşünüyorum.
teşekkürler..
Cari formuma bir combobox koyup bu comboboxta cari tablomdaki firma kodu ve firma adını aynı comboboxtan seçtirip, seçilen firmaya göre işlem yaptırtmak istiyorum. (Firma_kodu ve Firma_adı aynı tabloda)
bir comboboxta 2 alanı birden göstermek mümkünmü?
yada bu işi nasıl yapabilirim? combobox dışında da bir çözümde olabilir
ama kullanıcı açısından en kullanışlı yol combobox olur diye düşünüyorum.
teşekkürler..
formun oncreate olayında bu bilgileri comboboza doldurabilirsin
eğer bunu yapmak istiyorsan
tablodaki bilgileri bu şekilde comboboxa doldurabilisin 
eğer bunu yapmak istiyorsan
Kod: Tümünü seç
var
a:integer
begin
combobox.items.clear;
table1.first;
for a:0 to table1.recordcount do
begin
combobox1.items.add(table1Firma_kodu.value+' '+table1Firma_adi);
end;
end;

بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
sen bu tarz şeyler için dinamik dizi kullanıyorum ve firma kodu nu dizide, firma adını cobmobox da tutuyorum.
Kod: Tümünü seç
FirmaNo : array of LongInt;
SetLength(FirmaNo, kaç tane müşterin varsa o kadarlık yer ayırıyorsun);
Kod: Tümünü seç
FirmaNo[ComboBox1.ItemIndex];
evet yardımınız için teşekkür ederim.
Bunu yapmak istiyordum fakat şöyle bir problem var kayıtların hepsini listelemiyor. kodum şu:
Sadece ilk 2 kaydı listeliyor. Tabloda 4 kaydım var.
Bunu yapmak istiyordum fakat şöyle bir problem var kayıtların hepsini listelemiyor. kodum şu:
Kod: Tümünü seç
VAR
X:integer;
begin
combobox1.items.clear;
FDatamod_CariBasYeni.IBDataSet1.Open;
FDatamod_CariBasYeni.IBDataSet1.first;
for X:=0 TO FDatamod_CariBasYeni.IBDataSet1.RecordCount DO
begin
combobox1.items.add(FDatamod_CariBasYeni.IBDataSet1FIRMA_KODU.AsString+' '+fDatamod_CariBasYeni.IBDataSet1FIRMA_ADI.text);
FDatamod_CariBasYeni.IBDataSet1.Next; //Bu satırı silip denediğimde ilk kaydı iki kere listeliyor.
end;
Kolay gelsin, Bir ilave bizde yapalım belki işinize yarar, bir ara sadettin polat arkadaşımız combobox u DBLookupComboBox gibi kullanabilme gibi bir ip ucu vermişti. Ondan esinlenerek bu ipucunu burada dahada geliştirerek örneklemeye çalışalım acizane olarak.
access le veri.mdb veritabanımız olduğunu içinde de grupve sozcukler adında iki tablemiz olduğunu varsayalım.
Formumuzun onshow olayına
Şimdide ComboBox1 e gelelim ve oradan seçilen formdaki DBGRid içerisinde listelensin.
Yukarıda da görüldüğü üzere combobox1 içerisinde listelenmesini istediğimiz kelimeler listelenir. Sorgu yaparken de program combobox içerisinde sayısal yani ID yi ele alarak kullanır. Aynı işi isterseniz tek table içinde yapabilirsiniz .
Herkese kolay gelsin....
access le veri.mdb veritabanımız olduğunu içinde de grupve sozcukler adında iki tablemiz olduğunu varsayalım.
Formumuzun onshow olayına
Kod: Tümünü seç
procedure TForm1.FormShow(Sender: TObject);
var
j:integer;
begin
ADOQuery1.Open;
datamodule1.ADOQuery1.Close;
datamodule1.ADOQuery1.SQL.Clear;
datamodule1.ADOQuery1.SQL.Add('Select * from grup');
datamodule1.ADOQuery1.Open;
if not datamodule1.ADOQuery1.IsEmpty then
begin
while not datamodule1.ADOQuery1.Eof do
begin
j:=datamodule1.ADOQuery1.FieldByName('id').AsInteger;
ComboBox1.Items.AddObject(dm.q.FieldByName('gadi').AsString,TObject(j));
datamodule1.ADOQuery1.Next;
end;
datamodule1.ADOQuery1.Close;
end;
end;
Kod: Tümünü seç
procedure TForm1.ComboBox1Change(Sender: TObject);
var
deger:integer;
begin
try
deger:=Integer(ComboBox1.items.Objects[ComboBox1.ItemIndex]);
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from sozcukler');
ADOQuery1.SQL.Add('where gid=:xgid');// buradaki gid(sozcukler tablesinde grup table için oluşturduğumuz ilişki, yani sozcukler tablesinde kayıt yapılırken grup id(field) si sozcukler gid(field) ne yazılıyor. grup tablede mesela deyimler dediğimizde sozcukler içerisinde deyim e ait ne kadar sozcuk varsa listelenir.
ADOQuery1.Parameters.ParamByName('xgid').Value:=deger;
ADOQuery1.Prepared:=True;
ADOQuery1.Open;
if ADOQuery1.IsEmpty then
begin
ShowMessage('Bu KAtegoride Henüz Kayıt Yapılmamış');
Abort;
end;
except
ADOQuery1.Close;
ShowMessage('İstenilen Kayıt Bulunamadı');
end;
end;
Herkese kolay gelsin....
o zaman
Kod: Tümünü seç
FDatamod_CariBasYeni.IBDataSet1.fetchall
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
menderes hocam şimdi size nasıl teşekkür edecem bilemiyorum, verdiğiniz kod çok güzel çok teşekkür ederim.
ALUCARD arkadaşım sizede çok teşekkür ederim menderes hocamın vermiş olduğu koda sizin kodu ekleyince kayıdı bulamıyor. eşleşme sağlanmadığı için. Olsun böylede olsa çok işimi gördü.
Bu kodu ibdataset nesnesine uygulamak mümkünmü acaba
bir türlü uyarlayamadım ben
teşekkürler..
ALUCARD arkadaşım sizede çok teşekkür ederim menderes hocamın vermiş olduğu koda sizin kodu ekleyince kayıdı bulamıyor. eşleşme sağlanmadığı için. Olsun böylede olsa çok işimi gördü.
Bu kodu ibdataset nesnesine uygulamak mümkünmü acaba

bir türlü uyarlayamadım ben

teşekkürler..
merhaba..
Yapman gereken sadece kodu IBdatasete uyarlamak...Diğer kodlar aynı zaten...
Yapman gereken sadece kodu IBdatasete uyarlamak...Diğer kodlar aynı zaten...
Kod: Tümünü seç
ADOQuery1.SQL.Clear; => IBdataset.SelectSQL.Clear;
------------
ADOQuery1.SQL.Add(); => IBdataset.SelectSQL.Add();
------------
ADOQuery1.Parameters.ParamByName('xgid').Value:=deger;
=>
IBdataset.ParamByName('xgid').Value:=deger;
şu satırı uyarlayamadım
prepared komutu ne işe yarıyor onuda çözemedim.
teşekkürler..
Kod: Tümünü seç
DM1_Cari.IBDataSet1.Prepared:=True;
teşekkürler..
-
- Kıdemli Üye
- Mesajlar: 1223
- Kayıt: 26 Nis 2005 04:08
Selamlar.
Prepare ve Prepared işlev olarak farklı şeyler..Prepare sorguyu tabloyu open etmeden çalıştırıp denemenizi sağlar.Prepared ise boolean tipindedir ve Prepare metodunu kullanıp kullanmayacığınızı belirlemenizi sağlar.
Ek olarak bu tür işlemler için Info Power paketinde DBLookUpCombobox adında bir bileşen var, istediğiniz işlemleri fazlasıyla yapabilmenize olanak verecektir.
Kolay gele.
Prepare ve Prepared işlev olarak farklı şeyler..Prepare sorguyu tabloyu open etmeden çalıştırıp denemenizi sağlar.Prepared ise boolean tipindedir ve Prepare metodunu kullanıp kullanmayacığınızı belirlemenizi sağlar.
Ek olarak bu tür işlemler için Info Power paketinde DBLookUpCombobox adında bir bileşen var, istediğiniz işlemleri fazlasıyla yapabilmenize olanak verecektir.
Kolay gele.
kusura bakmayın orada prepare yi açıklamalıydım aslında kullanım açısından farklı olan bir o var zaten.Sağolsun bLue aLonE arkadaşımız da açıklamış gerçi.
ADOQuery kullanırken prepared:=True;
-> BDE ve IBQuery gibi bileşenlerde kullanırken sadece prepare IBQuery1.Prepare; gibi bu düzenle, sırala anlamında işleme verim katar. En azından ben öyle kullanıyorum.
Kolay gelsin.....Forum da da ararsanız bir çok örnek bulabilirisiniz.
ADOQuery kullanırken prepared:=True;
-> BDE ve IBQuery gibi bileşenlerde kullanırken sadece prepare IBQuery1.Prepare; gibi bu düzenle, sırala anlamında işleme verim katar. En azından ben öyle kullanıyorum.
Kolay gelsin.....Forum da da ararsanız bir çok örnek bulabilirisiniz.
Slm arkadaşlar moderatörümüz bu başlığa yönlendirdi buraya yazayım
table1 in 1. sütunu yani Tc_kimlik_no 'ya girilen kimlik numaralarını dbcombobox1 de görüntülemek istiyorum items özelliğe yazacam ama ****** olan yere ne gelecek bilmiyorum lütfen yardım yarın hoca projeyi kontrol edecek
procedure Todeme.FormCreate(Sender: TObject);
var
a:integer;
begin
combobox1.items.clear;
table1.first;
for a:=0 to table1.recordcount do
begin
combobox1.items.add(table1.**********);
end;
şimdiden teşekkürler
table1 in 1. sütunu yani Tc_kimlik_no 'ya girilen kimlik numaralarını dbcombobox1 de görüntülemek istiyorum items özelliğe yazacam ama ****** olan yere ne gelecek bilmiyorum lütfen yardım yarın hoca projeyi kontrol edecek
procedure Todeme.FormCreate(Sender: TObject);
var
a:integer;
begin
combobox1.items.clear;
table1.first;
for a:=0 to table1.recordcount do
begin
combobox1.items.add(table1.**********);
end;
şimdiden teşekkürler
hocam kullandığın veritabanı ne bilmiyorum ama
sorunun cevabı da
sorunun cevabı da
Kod: Tümünü seç
procedure Todeme.FormCreate(Sender: TObject);
var
a:integer;
begin
combobox1.items.clear;
table1.first;
for a:=0 to table1.recordcount do
begin
combobox1.items.add(table1Tc_kimlik_no.asstring);
end;
بِسْمِ اللهِ الرَّحْمنِ الرَّحِيمِ
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Forumun 365. Üyesi
Hiç Bir Şey İnsan Kadar Yükselemez ve Alçalamaz
Erkan ÇAĞLAR
Merhaba..
Hata 1 : demişsiniz.. Bu durumda döngü, kayıt sayısından bir fazla kere dönecektir.
Hata 2 : Döngü içerisinde NEXT ile bir sonraki kayda geçmediğiniz için hep ilk ve aynı kayıttaki TCKimlik numarasından, kayıt sayısı +1 tane göreceksin.
Şöyle olması lazımdı...
Hata 1 :
Kod: Tümünü seç
for a:=0 to table1.recordcount do
Hata 2 : Döngü içerisinde NEXT ile bir sonraki kayda geçmediğiniz için hep ilk ve aynı kayıttaki TCKimlik numarasından, kayıt sayısı +1 tane göreceksin.
Şöyle olması lazımdı...
Kod: Tümünü seç
procedure Todeme.FormCreate(Sender: TObject);
begin
combobox1.items.clear;
table1.first;
While NOT Table1.EOF do
begin
combobox1.items.add( table1.FieldByName('Tc_kimlik_no').asstring );
Table1.Next;
end;
end;