master detail olayı

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
seamoon
Üye
Mesajlar: 37
Kayıt: 08 Kas 2005 12:43
Konum: İstanbul

master detail olayı

Mesaj gönderen seamoon »

slm;

arkadaşlar şu master detail olayını hala çözebilmiş değilim.

access'te hazırladığım iki tablo var 1-YILLAR, 2-BİLGİLER

ALANLAR;

YILLAR
Yılı

BİLGİLER
Firma Kodu
Ünvanı
EnvTar
EnvNo
YevTar
YevKod
...........

YILLAR tablosundaki Yılı alanı ile BİLGİLER tablosundaki Firma Kodu alanlarını master/detail bağlamak istiyorum...

bunu nasıl yapacağım? açıklayıcı bilgi verirseniz sevinirim :oops:
seamoon
Kullanıcı avatarı
mussimsek
Admin
Mesajlar: 7602
Kayıt: 10 Haz 2003 12:26
Konum: İstanbul
İletişim:

Mesaj gönderen mussimsek »

Master/detail aslında basit bir olay. Forumda pek çok kez konuşuldu ama ben kısaca yazıyim. :ara Arama yapıp, sonuçları okuyarak daha detaylı bilgilere ulaşabilirsiniz.

Master-detail yapıda bir ana kayıta karşılık, birden fazla detay kayıt olur. Mesela Fatura çok güzel bir örnek. Bilgisayar aldığınızda tek bir fatura verilir ama içinde birçok parça olabilir (işlemci, anakart, ram vs.). Bu durumda Fatura master kayıt iken, Faturadaki ürünleri sakladığınız tablo detail tablodur.

Bu iki tabloyu bir şekilde ilişkilendirmeniz lazım. Yani bir veya birkaç ortak alanı olmalı. Burda en güzeli FATURA_NO mesela. Bu 2 tabloda Fatura_No alanı aynı olan kayıtlar tek bir faturayı oluşturur. Yani :

Fatura_No 14 olsun mesela, master tablo şu şekilde olmalı :

14, 23 Kasım 2005, Sea Moon, .....

Detay kayıtlar

14, işlemci, 100 $
14, anakart, 95 $
14, ram, 45 $

gördüğün gibi Fatura_No'lar aynı ikisinde de.

Kolay gelsin.
Kullanıcı avatarı
NewMember
Üye
Mesajlar: 990
Kayıt: 29 Haz 2005 06:57
Konum: Bursa

Mesaj gönderen NewMember »

MsAccess de nasıl yapılır yada yapılabilirmi bilemiyorum.Ancak SQL koduyla yapabilirsin.Ben MSacces de bu tür tablo ilişkilendirmelerini SQL ile yapıyorum.
ASE
Kıdemli Üye
Mesajlar: 518
Kayıt: 28 Ağu 2003 03:17
Konum: samsun
İletişim:

Mesaj gönderen ASE »

Access in ilişkiler arayüzü var. Oradan görsel olark yapabilirsiniz. Yılı sütununu sürükjleyerek ülke kodunun üzerine bırakacaksınız. Kolay gelsin.
Allah'ım!...
Yol boyunca bırakma elimi...
Düşerim sonra...


ASE YAZILIM
kyilmaz46
Üye
Mesajlar: 16
Kayıt: 15 May 2005 12:09

Mesaj gönderen kyilmaz46 »

Programın arayüzünü delphide hazırlıyor. Veri tabanı olarak sadece acsses kullanıyorsan. Ado Table ile Acess bağlantını yap. Adoda 2 table hazırla 1 Yıllar 2 bilgiler , veritabanında YID yide ekle yıllar table lını bağlamak için, sonra Bilgiler Table lının Mastersource cüne Yıllar Table lını tanımla Master Field bölümündede Yıllar Table nin ID si ile Birimler Tablesinde tanımladığın YID yi bağla işte sana master detail bağlantısı Kolay Gelsin
seamoon
Üye
Mesajlar: 37
Kayıt: 08 Kas 2005 12:43
Konum: İstanbul

Mesaj gönderen seamoon »

slm;

[kyılmaz]
evet dediğin gibi veritabanını accesste oluşturup delphi ile kullanıyorum.

cevap için teşekkürler ama daha açıklayıcı anlatabilirmisiniz? :oops:

ID lardan bahsetmişsiniz, access zaten otomatik ID yaratıyor?
seamoon
Kullanıcı avatarı
otherside
Üye
Mesajlar: 65
Kayıt: 11 Mar 2005 02:48
Konum: istanbul

Mesaj gönderen otherside »

ortak bi alanın varsa mesala faturono die
select * from faturaana fa ,faturadetay fd where fa.faturano=fd.faturano dersen ikisini birlestirmiş olursun artık raporda alt bilgi ust bilgi gerıye kalan
kyilmaz46
Üye
Mesajlar: 16
Kayıt: 15 May 2005 12:09

Mesaj gönderen kyilmaz46 »

slm
seamoon kardeş sen Accseste Yıllar ve Bilgiler Diye iki tablo oluşturmuşundur. Anladığım kadarı ile Bundan Yıllar master olacak bilgiler detail olacak Yıllar tablonda otomatik sayıların tutulduğu ID fieldin vardır. Aynı Şekilde Bilgiler Tablondada otomatik sayıların tutulduğu ID vardır.Buna ek olarak senden istediğim Bilgiler Tablona YID şeklinde veya istediğin bir isimde sayı formatında bir field(alan) daha oluşturman
Tabloda bu işlemleri yaptıktan sonra Delphide Yıllar ve Bilgiler için birer tane ADOTable, ADOconnection ve Datasource ekle ve Accses veri tabanın ile bağlantılarını yap Bilgiler ADOTable lında üzerinde iken object inspector de bulunan MasterSource kısmına Yıllar ADO Tableni bağla Sonra Bir üstünde bulunan Masterfields kısmına tıkla field link designer yazılı bu bölümden Masterfields Kısmında Yıllar tablon olan yani master olan ID alanını seç Detailfields alanında ise Bağlantı için yaptığın bilgiler tablosunda bulunan YID alanını seç ve add yap ve ok tuşuna bas master detail bağlantın yapılır.Kolay gelsin
Kullanıcı avatarı
fanibiri
Üye
Mesajlar: 21
Kayıt: 05 Nis 2005 08:55
Konum: Antalya
İletişim:

Access İlişki

Mesaj gönderen fanibiri »

SeaMoon
Ben Anlatayım
Master (ana Tablo) ya
bir adet otomatik sayı koy meselela

Master Tablo = YILLAR
Alanlar ;
(id koymanın sebebi eğer yılları birincil anahtar yapacaksan aynı yılda girilen bilgiler de sorun yaşarsın o yüzden sürekli 1 artan alanın olması seni sorunlardan kurtarır)

ID = otomatik sayı
YILLAR = Birincil Anahtar (metin)

Detail tablosuna master tabloda birincil anahtar yaptığını bağlaman için aynı bilgileri taşıyacak yani ilişkiyi kuracak bir alan eklemen şart

Bilgiler Tablosu (Detail)
yine bir id koy otomatik sayı
bilgiid = otomatik sayı
YILLAR = metin
firmakodu = metin
unvani= metin
EnvTar = tarih
envno = sayı
Yevtar = tarih
Yevkod = metin
detaile birincil anahtar vermene gerek yok

bu tabloları oluşturduktan sonra

Tablolar kısmında herhangi bir tablo açık değil iken mouse a sağ tıklayıp ilişkilere bas
Burada yine sağ tıklamayla tabloları göster seçeneğini tıkla karşına yapmış olduğun tablolar çıkacak
ardından
YILLAR tablosundaki birincil anahtar olan YILI alanını mouse un sol düğmesine basılı tutarak Bilgiler tablosundaki YILI alanın üzerine taşı sana direk program ilişkilendirme türünü soracak buradan da 3. seçeneği işaretle Accessde ilişki kurmak delphideki ve visual basicteki gibi işkence değildir olay bu kadar basit
Formda ise bu ilişkiyi kurmak form alt üst bilgisi ile mümkündür.
ilk önce bir form yarat ve YILI tablosundaki alanları form a(form1) yerleştir ardından bilgiler için bir form(form2) yarat ve bilgilerdeki alanları form2 ye yerleştir
YILLAR formuna geç (form1) orada form alt ve üst bilgilerini göster diye bir seçenek var onu işaretle ardından açılan 3 kutucuklu formun en üstüne form1 i taşı ortadaki form bölümüne ise formu küçülterek form2 yi taşı (mousela) o formu kaydet tekrar aç olay tamamdır. Yapamadığın yer olursa yardımcı olurum...
Access küçük işletmeler için ve küçük programlamalar için ideal bir çözüm fakat malum lisans gerektiriyor office xp with frontpagede yaklaşık olarak 700-800 YTL
Accessi Exe yapmakta mümkün.
MDE haline çevirmek ve ODE ile setup uygulaması haline getirip her bilgisayara kurmakta mümkün....
Fakat ODE de paralı bir kez 200 dolar + 800 ytl (office xp with frontpage paketi) ödeyip bu programları aldığın taktirde yapmış olduğun tüm programları istediğin bilgisayarda kurabiliyorsun.
Bilenler Lütfen Bilmeyenlere Anlatsın....
Cevapla