Access
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Access
Günaydın Arkadaşlar
Database de 10 tane den fazla tablom var. Bir tablonun koduna bakarak 4 tabloda sorgulamak istiyorum. Bunu SQL olarak mı yapayım yoksa taratma şeklindemi yapayım.
Eğer SQL olarak yapın derseniz nasıl bir SQL kodu kullanmalıyım.
Yardımcı olursanız sevinirim.
Database de 10 tane den fazla tablom var. Bir tablonun koduna bakarak 4 tabloda sorgulamak istiyorum. Bunu SQL olarak mı yapayım yoksa taratma şeklindemi yapayım.
Eğer SQL olarak yapın derseniz nasıl bir SQL kodu kullanmalıyım.
Yardımcı olursanız sevinirim.
Oncelikle sunu soylemeliyim ki kesinlikle SQL olarak yapmalisiniz.
Performans acisindan cok farkeder. Belki Access tarzi client server calismayan bir yapida bu performansi farkedemeyebilirsiniz ama aliskanlik olarak sql kullanmanizi hararetle tavsiye ederim.
SQL kodu konusunda yardimci olabilmek icin konu hakkinda biraz detay vermeniz gerekir ne tur tablolar hangi alanlar nasil iliski vs...
Performans acisindan cok farkeder. Belki Access tarzi client server calismayan bir yapida bu performansi farkedemeyebilirsiniz ama aliskanlik olarak sql kullanmanizi hararetle tavsiye ederim.
SQL kodu konusunda yardimci olabilmek icin konu hakkinda biraz detay vermeniz gerekir ne tur tablolar hangi alanlar nasil iliski vs...
Tablonun biri CariKart Tablosu 'Bu Master olacak
diğer biri nakit işlem tablosu 'Bu Detail
diğer biri Faturalar Tablosu 'Bu Detail
diğer biri ÇekSenet tablosu diğer biri 'Bu Detail
Bankalar tablosu hepsi CariKod alanı ile ilişkili 'Bu Detail
Amaç CariKart ların ekstralarını (Hareketlerini dökebilmek)
Ayrıca yardımlarınız için teşekkür ederim.
diğer biri nakit işlem tablosu 'Bu Detail
diğer biri Faturalar Tablosu 'Bu Detail
diğer biri ÇekSenet tablosu diğer biri 'Bu Detail
Bankalar tablosu hepsi CariKod alanı ile ilişkili 'Bu Detail
Amaç CariKart ların ekstralarını (Hareketlerini dökebilmek)
Ayrıca yardımlarınız için teşekkür ederim.
Sana tavsiyem CariHareketler diye bir table daha oluştur. Yapılmış hareketlerin özetlerini buraya yaz yani tipi, evrak nosu, tarihi, alacak, borç alanları olsun.
çek table a bir kayıt eklediğinde harekete e de ekle faturada girilse harekete ekle. Bunun avantajı şu olur. cari extresi aldığında alacak ve borc alanlarını sum ile kod yazmadan alabilirsin. diğer taraftanda master olarak bunu kullanarak detailleri görüntülemen kolaylaşırız. bunun içinde DevExpress in MasterDetail gridini kullanabilirsin.
kolay gele
çek table a bir kayıt eklediğinde harekete e de ekle faturada girilse harekete ekle. Bunun avantajı şu olur. cari extresi aldığında alacak ve borc alanlarını sum ile kod yazmadan alabilirsin. diğer taraftanda master olarak bunu kullanarak detailleri görüntülemen kolaylaşırız. bunun içinde DevExpress in MasterDetail gridini kullanabilirsin.
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Öteki konu diye kastettiğin nedir ? SQL ise Fahrettin gerekli bir açıklama yapmış, üstat benden çok daha tecrübelidir. Yani bir ustadır. Benim eski ustam şöyle derdi. Çırağın işi kontrol edilir, kalfanınki arada sırada kontrol edilir, ustanınkiyse edilmez.
kolay gele

kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Merhaba,
yapıyı tam bilmeden zor olacak ama 2 tablo arasında şöyle ilişki kurabilirsin :
SELECT A.*,B.*
FROM A_TABLOSU A, B_TABLOSU B
WHERE A.CARI_KOD=B.CARI_KOD
bu 3 tablo olursa
SELECT A.*,B.*, C.*
FROM A_TABLOSU A, B_TABLOSU B, C_TABLOSU C
WHERE A.CARI_KOD=B.CARI_KOD
AND A.CARI_KOD=C.CARI_KOD
....
ancak Freeman35'in dediğ gibi bir tablon olsa olay çok daha kolay alacak. Böyle SQL ile veya tarayarakta sonuçları alsan, pek istediğin gibi olacağını sanmam.
Kolay gelsin.
yapıyı tam bilmeden zor olacak ama 2 tablo arasında şöyle ilişki kurabilirsin :
SELECT A.*,B.*
FROM A_TABLOSU A, B_TABLOSU B
WHERE A.CARI_KOD=B.CARI_KOD
bu 3 tablo olursa
SELECT A.*,B.*, C.*
FROM A_TABLOSU A, B_TABLOSU B, C_TABLOSU C
WHERE A.CARI_KOD=B.CARI_KOD
AND A.CARI_KOD=C.CARI_KOD
....
ancak Freeman35'in dediğ gibi bir tablon olsa olay çok daha kolay alacak. Böyle SQL ile veya tarayarakta sonuçları alsan, pek istediğin gibi olacağını sanmam.
Kolay gelsin.
TTable gibi standart kullanıyorsan property sinden bağlarsan hiç bir kod yazmana gerek kalmaz.
Ben IBX kullanıyorum eski versiyonlarında bu yukarıda yazdığım yöntem arızalı çalışıyordu, bende o yüzden aşağıdaki yöntemi kullanıyorum hala
Formun üzerine DBEdit koy ve bunu master Query nin Primary key fieldına bağla. Visible ınında false yap. DBEdit in OnChange Event'ınada SQL leri yaz
kodu kafamdan yazdım yazılım hatası olma ihtimali vardır
kolay gele
Ben IBX kullanıyorum eski versiyonlarında bu yukarıda yazdığım yöntem arızalı çalışıyordu, bende o yüzden aşağıdaki yöntemi kullanıyorum hala
Formun üzerine DBEdit koy ve bunu master Query nin Primary key fieldına bağla. Visible ınında false yap. DBEdit in OnChange Event'ınada SQL leri yaz
Kod: Tümünü seç
try
DetailQuery.DisableControl;
DetailQuery.SQL.Clear;
DetailQuery.SQL.Add('Select * from xxxx');
DetailQuery.SQL.Add('Where PrKey = :PrKey_');
DetailQuery.Prepare;
DetailQuery.ParamByName('PrKey_').AsInteger := MasterQuery.FieldByName('PrimaryKey').AsInteger;
DetailQuery.Open;
Finally
DetailQuery.EnableControl;
end;
kolay gele
ZAGOR TENAY TÜRK'tür... TÜRK kalacak...
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
Zoru başarırım, İmkansız zaman alır
FreeMan 35.5
Soru sormaya üşenmiyorsan, sorunun çözümünü yazmaya da üşenme !!!
ilginç
SELECT A.*,B.*
FROM A_TABLOSU A, B_TABLOSU B
WHERE A.CARI_KOD=B.CARI_KOD
Mustafa hoca böyle yazmış.
Datasource ado connection ve Ado dataset kullanıyorum
hepside çok güzel cmd text e girip sql mustafa hocamın kile gibi yapıyorum
iki tablo var bilgi ve musteriler ortak alan muskod (müşteri kodu)
SELECT musteriler.*,bilgi.* FROM musteriler,bilgi WHERE musteriler.muskod=bilgi.muskod
diyorum active hale getirince ADODataset1:field muskod not found diyor hayret ediyorum sadece
SELECT * FROM bilgi,musteriler Dediğim zaman çalışıyor Delphi 6 nın uptadelerini yükledim umarım sorun yapmaz veya ben yanlış yapıyorum Teşekkürler...
FROM A_TABLOSU A, B_TABLOSU B
WHERE A.CARI_KOD=B.CARI_KOD
Mustafa hoca böyle yazmış.
Datasource ado connection ve Ado dataset kullanıyorum
hepside çok güzel cmd text e girip sql mustafa hocamın kile gibi yapıyorum
iki tablo var bilgi ve musteriler ortak alan muskod (müşteri kodu)
SELECT musteriler.*,bilgi.* FROM musteriler,bilgi WHERE musteriler.muskod=bilgi.muskod
diyorum active hale getirince ADODataset1:field muskod not found diyor hayret ediyorum sadece
SELECT * FROM bilgi,musteriler Dediğim zaman çalışıyor Delphi 6 nın uptadelerini yükledim umarım sorun yapmaz veya ben yanlış yapıyorum Teşekkürler...
Bilenler Lütfen Bilmeyenlere Anlatsın....
- ender_arslanturk
- Kıdemli Üye
- Mesajlar: 709
- Kayıt: 18 Şub 2005 03:38
- Konum: İstanbul
Merhaba
Hüseyin Abi kayıt sayısıda önemlidir. Birde performansı daha iyi olması için Prepare metodunuda kullanmalısın. SQL Sorgusu ile yapman tabiki mantıklı. Ama sen alternatiflere görede bir test yap istersen. Sorgularda her zaman parametre kullanımı ve prepare kullanımı performansı çok önemli derecede etkiler. Birde geriye dönen kayıt yoksa Querylerin unidirectional özelliği bunu da tek yönlü yapabilirsin.....
Saygılar, Başarılar....
Hüseyin Abi kayıt sayısıda önemlidir. Birde performansı daha iyi olması için Prepare metodunuda kullanmalısın. SQL Sorgusu ile yapman tabiki mantıklı. Ama sen alternatiflere görede bir test yap istersen. Sorgularda her zaman parametre kullanımı ve prepare kullanımı performansı çok önemli derecede etkiler. Birde geriye dönen kayıt yoksa Querylerin unidirectional özelliği bunu da tek yönlü yapabilirsin.....
Saygılar, Başarılar....
delphiye başladığım zamanki sorularım bu nerden buldunuzender_arslanturk yazdı:Merhaba
Hüseyin Abi kayıt sayısıda önemlidir. Birde performansı daha iyi olması için Prepare metodunuda kullanmalısın. SQL Sorgusu ile yapman tabiki mantıklı. Ama sen alternatiflere görede bir test yap istersen. Sorgularda her zaman parametre kullanımı ve prepare kullanımı performansı çok önemli derecede etkiler. Birde geriye dönen kayıt yoksa Querylerin unidirectional özelliği bunu da tek yönlü yapabilirsin.....
Saygılar, Başarılar....

Acces ı unutalı yıllar oldu


Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.
Bu arada fikirleriniz için teşekkür ederim.
Kolay Gelsin...
Kolay Gelsin...
Gazete manşetleri
* DİKKAT :Lütfen forum kurallarını okuyalım ve uyalım...!
* Warez,crack vs. paylaşımı kesinlikle yasaktır.