İki ayrı tablodaki verilerden bir üçüncü tablo oluşturmak

1 2 3 4
13/10/2009, 11:20

Seruz

Sn. Taruz bir örnek yapmış ve göndermiş, öncelikle kendisine teşekkürler.

Ancak konuda ismim geçtiği için ve bu aralar hiç bulamadığım bir boş vakit yaratıp yaptığım çalışmanın emeği boşa gitmesin diye bende gönderiyorum.

Bence de bir C tablosu yaratmanın bir manası yok. İşlemler direkt B tablosu üzerinde yapılabilir. Ayrıca B tablosu Excel olarak mı Access olarak mı isteniyor tam anlayamadığım için Access olarak bıraktım, gerekirse Excel'e aktarırız.

Transfer formunda dosya ismini default olarak "C:\Tablo A.xls" olarak getirdim. Aslında FileBrowser ile seçimli yapılabilir ama şimdi vaktim yoktu, sonra bakarız.

Sanırım istediğiniz gibi oldu, bir inceleyin bakalım.

Kod:
Private Sub LOG_TRANSFER()
On Error GoTo Err

    DoCmd.Hourglass True
    DoCmd.SetWarnings False

    DoCmd.DeleteObject acTable, "A"
    DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "A", Me.DosyaAdi, True

    DoCmd.OpenQuery "1_A_Tablosundaki_Gecersiz_Kayitlari_Sil"
    DoCmd.OpenQuery "3_A_Tablosundaki_Yeni_Kayitlari_B_tablosuna_Yaz"
    DoCmd.OpenQuery "4_B_tablosundaki_Kayitlari_A_Tablosundakilerle_Guncelle"

    DoCmd.SetWarnings True
    DoCmd.Hourglass False

    MsgBox "İşlem tamamlandı. Sonuçları B tablosunda görebilirsiniz. "
    DoCmd.OpenTable "B", acViewNormal

Exit Sub
Err:
    'A tablosunu silme esnasında hata verirse devam etsin.
    If Err.Number = 7874 Then Resume Next
    DoCmd.SetWarnings True
    DoCmd.Hourglass False
    If Err.Number = 3011 Then
        MsgBox "Belirttiğiniz dosya bulunamadı", vbOKOnly, "UYARI"
    Else
        MsgBox Error
    End If
End Sub

Alıntı:1)İki tablodaki bazı ortak veriler birleştirilerek( ortak verilerin bulunduğu kolon başlıkları farklı fakat içinde bulunan veriler aynı ) B tablosuna uygun formatta bir 3. tablo yaratmaktır ki bu tablo sonra ticari programa tekrar geri yüklenecektir.
Üçüncü bir tabloya gerek yok, B tablosu üzerinden herşey yapılabilir.

Alıntı:2)oluşturulacak 3. tabloda B tablosundaki unininstock kolonu A daki İ kolonu ile karşılaştırılacak ve 3. Tablo B deki verilere göre tekrar güncellenecektir.
Şimdi 3. tablo yapmayacağımıza göre B tablosundaki unininstock alanına dokunmayacağız. Peki A tablosundan yeni gelen kayıtlarda ne olacak bu alan?

Alıntı:3)B'de yer alan listprice kolonu A daki J kolonu ile karşılaştırılacak ve oluşturulacak 3. tablodaki listprice kolonu A daki veriye göre güncellenecektir.
Güncelleme sorgusu ile B deki ListPrice, Price, Buying Price alanları A ya göre güncelleniyor. Buying Price alanı için %20 oranını sabit olarak ekledim sorguda, isterseniz değiştirirsiniz.

Alıntı:4)Tablo A da yer alan Fakat Tablo B de yeralmayan ( kısaca tedarikçi firmanın stoklarına yeni giren ürünler ) olacaktır.Bu ürünlerinde 3. Tabloya otomatikmen işlenmesi gerekmektedir.

A tabloundaki Yeni ürünler EklemeSorgusu kullanılarak B tablosuna otomatikman ekleniyor.
14/10/2009, 10:29

tsonmez2

Arkadaşlara bu zahmetli tablonun yapımında emeği geçen herkese teşekkür ederim.Taarruz üstadım bahsettiğim sorun Access 2003 versiyonunda da devam etmekte bu sebepten ötürü sorguları çalıştırmam pek mümkün olmadı.Seruz üstadım senin hazırlamış olduğun sorguları çalıştırdım.şimdilik sorun yok gibi görünmekte.
Uğraşılarınız için herkese teşekkür ederim.Sağlıcakla kalınız.
14/10/2009, 11:29

Seruz

Önemli olan yapılan işlemlerin mantığını anlamanız.
Mantığı anladıysanız, kendinize göre istediğiniz gibi değiştirebilir ve geliştirebilirsiniz.

Kolay gelsin.
15/10/2009, 14:21

assenucler

Değerli Seruz;

Arşivime ekliyorum, katkınız için teşekkür..

Selam ve sevgiler.
1 2 3 4