Skip to main content

AccessTr.neT


Çoklu tablo birleştirme hakkında

Çoklu tablo birleştirme hakkında

Çözüldü #1

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)
drummers, 11-05-2009 tarihinden beri AccessTr.neT üyesidir.
Son Düzenleme: 21/02/2012, 17:28, Düzenleyen: drummers.
Cevapla
Çözüldü #2

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;
Saygılar, iyi çalışmalar.
*********
Kod, formül vs bilmek önemlidir ama mantığını yürütebilmek, nerede ve nasıl kullanılacağını bilmek daha önemlidir.
Cevapla
Çözüldü #3
(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...
drummers, 11-05-2009 tarihinden beri AccessTr.neT üyesidir.
Son Düzenleme: 22/02/2012, 13:03, Düzenleyen: drummers.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da