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.
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ü.