Skip to main content

AccessTr.neT


iki veri tabanı arası aktarımda mükerrer kayıt önleme2

iki veri tabanı arası aktarımda mükerrer kayıt önleme2

Çözüldü #1
MErhabalar,
Daha önce çözüldüğünü düşündüğüm aktarım konusu, mükerrer kayıtların aktarıldığını görmem üzere tekrar sorun haline geldi.
Daha önce de istemiş olduğum gibi; vt2 veritabanındaki verileri vt1 e aktarmak istiyorum ve bunu  vt1'deki bir form aracılığıyla sizin yardımlarınızla çözmüştüm.
Fakat koşul olarak vt2'de bulunan; FicheNo alanının fat_no  ile ClientDefinition alanının fat_tedarikci alanı ile aynı olan kayıtlar haricindekileri aktarın aktarılmasını istiyordum.
Nerede bir hata yaptıysam bu koşul aktarım sırasında işlemiyor, bütün kayıtlar aktarılıyor.

Bir göz atabilirseniz memnun olurum.
Şimdiden teşekkür ederim.
.rar vtaktarim.rar (Dosya Boyutu: 38,39 KB | İndirme Sayısı: 14)
Cevapla
#2
Kod:
rivate Sub Komut3_Click()

'On Error Resume Next
Dim Baglanti As ADODB.Connection
Dim Kayit_AlinacakTablo As ADODB.Recordset

Set Baglanti = New ADODB.Connection
Baglanti.Open "Provider = Microsoft.ACE.OLEDB.12.0; Data Source = " & CurrentProject.Path & "\vt2.mdb"
    
Set Kayit_AlinacakTablo = New ADODB.Recordset
    
Kayit_AlinacakTablo.Open "PURCHINVOICELINES", Baglanti
    
    Do While Not Kayit_AlinacakTablo.EOF

    strSql = "SELECT t_faturalar.fat_no, t_faturalar.fat_tedarikci, * FROM t_faturalar WHERE (((t_faturalar.fat_no)='" & Kayit_AlinacakTablo.Fields("FicheNo") & "') AND ((t_faturalar.fat_tedarikci)='" & Kayit_AlinacakTablo.Fields("ClientDefinition") & "') AND ((t_faturalar.fat_adetmt)= " & Kayit_AlinacakTablo.Fields("Amount") & " ));"
  Set Kayit_EklenecekTablo = New ADODB.Recordset
    Kayit_EklenecekTablo.Open strSql, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
    
        With Kayit_EklenecekTablo
            If Kayit_EklenecekTablo.EOF Then
            .AddNew
            .Fields("fat_no") = Kayit_AlinacakTablo.Fields("FicheNo")
            .Fields("fat_tedarikci") = Kayit_AlinacakTablo.Fields("ClientDefinition")
            .Fields("fat_tip") = Kayit_AlinacakTablo.Fields("Name")
            .Fields("fat_adetmt") = Kayit_AlinacakTablo.Fields("Amount")
            .Fields("fat_birim") = Kayit_AlinacakTablo.Fields("Unitcode")
            .Fields("fat_fiyat") = Kayit_AlinacakTablo.Fields("Price")
            .Fields("fat_tutar") = Kayit_AlinacakTablo.Fields("Total")
            .Fields("fat_kur") = IIf(Kayit_AlinacakTablo.Fields("Field180").Value = "0", "1", Kayit_AlinacakTablo.Fields("Field180"))
            .Fields("fat_vade") = Kayit_AlinacakTablo.Fields("Field189")
            .Fields("fat_doviz") = Donustur(Kayit_AlinacakTablo.Fields("Field181"))
            .Fields("fat_vade") = Donustur(Kayit_AlinacakTablo.Fields("Field189"))
            .Fields("fat_dovtutar") = Kayit_AlinacakTablo.Fields("Field182")
            .Fields("fat_kimlik") = Kayit_AlinacakTablo.Fields("Field187")
            .Update
            End If
        End With
            
    Kayit_AlinacakTablo.MoveNext
    
    Loop

    Kayit_AlinacakTablo.Close
    Kayit_EklenecekTablo.Close
    Set Kayit_AlinacakTablo = Nothing
    Set Kayit_EklenecekTablo = Nothing
    
End Sub

İlk açtığım konudaki koda eklemeler yaparak sorunumu çözdüm. Üstteki kod istediğim gibi çalışıyor. Fakat nasıl oldu anlamadım, ekteki koddan farkını bulamadım. Şuan tek sorunum "Amount" alanında (564,5 gibi) virgüllü değer olunca hata veriyor. Onun dışında çözüldü.
Son Düzenleme: 01/03/2016, 20:17, Düzenleyen: mehmetb84.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da