AccessTr.neT

Tam Versiyon: Çoklu tablo birleştirme hakkında
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.

Private Sub Listele(ByVal Sql As String)
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='tablolar.mdb'") 'Veritabanımızın yerini belirtiyoruz.
Dim veriler As New DataTable("data")
Dim adapter As New OleDbDataAdapter(SQL, baglanti)
adapter.Fill(veriler) 'buradaki veriler oluşturduğumuz sanal tablo.
DataGridView1.DataSource = veriler 'veri tabanından gelen kayıtları DataGridView'e aktarıyoruz .
End Sub

Private Sub doldur()
Dim baglanti As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='tablolar.mdb'")
baglanti.Open()
Dim komut As New OleDb.OleDbCommand("SELECT firmaad FROM data ORDER BY firmaad", baglanti)
Dim oku As OleDb.OleDbDataReader
oku = komut.ExecuteReader()
baglanti.Close()
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
DataGridView1.EditMode = DataGridViewEditMode.EditProgrammatically
DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
Listele("Select * from data inner join ortak on data.firmaad = ortak.datafirmaad")
doldur()
End Sub






Listele("Select * from data inner join ortak on data.firmaad = ortak.datafirmaad")

Bu kodlarla "data" ve "ortak" tablolarımı bağlayıp DataGridView1 de gösteriyorum. Benim isteğim bu koda ek olarak "kira" ekleyip DataGridView1 de göstermesi.

Teşekkürler...

Ek Dosyalar
 baglis.rar(310.14 KB)

Bütün tablolarınızı ekleyin de bir bakalım. Gidişatınız yanlış gibi.


SELECT data.firmaad, data.adres, kira.kiraad, kira.kiraadres, ortak.ortakad, ortak.ortakadres
FROM (data LEFT JOIN kira ON data.firmaad = kira.datafirmaad) LEFT JOIN ortak ON data.firmaad = ortak.datafirmaad;
(22/02/2012, 12:31)ayhan2122 yazdı: [ -> ]Bütün tablolarınızı ekleyin de bir bakalım. Gidişatınız yanlış gibi.


SELECT data.firmaad, data.adres, kira.kiraad, kira.kiraadres, ortak.ortakad, ortak.ortakadres
FROM (data LEFT JOIN kira ON data.firmaad = kira.datafirmaad) LEFT JOIN ortak ON data.firmaad = ortak.datafirmaad;

Ek Dosyalar
 tablolar.rar(206.64 KB)


Kısaca yazayım mantığı:

1- "data" tablosu mükelleflerin adres ve firma bilgilerinin tutulduğu tablo (Textbox1,Textbox2). Bu alana veri girme zorunluluğu var. Mutlaka textbox1 dolu olmalı

2- "ortak" tablosu mükelleflerin ortak bilgilerinin tutulduğu tablo bu alana veri girme şartı olacak (Textbox3,Textbox4) Eğer Textbox3,Textbox4 de veri varsa Textbox1,Textbox3,Textbox4 e girilen veriler "ortak" tablosuna kaydedilecek.Aksi halde bu tabloya hiçbir şekilde veri aktarılmıyacak

3- "kira" tablosu mükelleflerin kira bilgilerinin tutulduğu tablo bu alana veri girme şartı olacak (Textbox5,Textbo64) Eğer Textbox5,Textbox6 de veri varsa Textbox1,Textbox5,Textbox6 e girilen veriler "kira" tablosuna kaydedilecek. Aksi halde bu tabloya hiçbir şekilde veri aktarılmıyacak

Tablolarımın mantığı budur.

Teşekkürleri borç bilirim...