Skip to main content

AccessTr.neT


Tablolar Arası Aktarma Sorunu

Tablolar Arası Aktarma Sorunu

#1
Merhaba arkadaşlar cümleten hayırlı Cumalar
Fatura tutanak tablosundan Veri tabanı tablosuna verileri aktarmak ve fatura tutanak dosyasında ki verileri silmek istiyorum. Biraz araştırdım bir kod buldum uyarlamak istedim lakin hata veriyor. Yardımcı olabilirseniz sevinirim. Saygılarımla
.rar fatura.rar (Dosya Boyutu: 53,48 KB | İndirme Sayısı: 7)
Cevapla
#2
Merhaba,

Referanslara "Microsoft ActiveX Data Object 2.8 library" referansını ekleyip, butonun tıklandığında olayındaki kodu aşağıdaki ile değiştiriniz.

StrSQL = "SELECT * FROM Veri_Tabanı"
Set rstkayit = New ADODB.Recordset
rstkayit.Open StrSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With rstkayit
.Find "[Kimlik]=" & [Form1].Form![Kimlik]
If rstkayit.EOF Then

.AddNew
.Fields("S_NO") = [Form1].Form![S NO]
.Fields("FİRMA_ADI") = [Form1].Form![FİRMA_ADI]
.Fields("FATURA_TARİHİ") = [Form1].Form!FATURA_TARİHİ
.Fields("FATURA_NO") = [Form1].Form!FATURA_NO
.Fields("TUTARI") = [Form1].Form!TUTARI
.Fields("AÇIKLAMA") = [Form1].Form!AÇIKLAMA
.Fields("Teslim_Tarihi") = [Form1].Form!Teslim_Tarihi

.Update
End If
End With

DoCmd.SetWarnings False
   DoCmd.RunSQL "DELETE Fatura_tutanak.Kimlik FROM Fatura_tutanak WHERE (((Kimlik)=[Form1].Form![Kimlik]))"
DoCmd.SetWarnings True


DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Me.Form1.Requery
   MsgBox "Aktarma Yapıldı.", , "Bilgi"
Cevapla
#3
sayın kübrashn,

bahsettiğiniz talebinize yönelik olarak;

kendi adıma geçerli olmak sureti ile,eklediğiniz örnek uygulamayı imkan ve zaman yetersizliği gerekçesi ile inceleme ortamında değilim fakat bir fikir vermesi amacı ile,

kayıt ekleme işlemi için INSERT INTO ya da INSERT INTO...SELECT Sql kod kullanımı ile veya Recordset kullanımı ile de bunu sağlayabilirsiniz.

ardından da,kayıt silme DELETE SQL kod kullanımını gerçekleştirebilirsiniz.

DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO kaydedilecek_tablo_adi ([alan_adi1],[alan_adi2],[alan_adi3],...v.s.) VALUES (" & Me.denetim_adi1 & "," & Me.denetim_adi2 & "," & Me.denetim_adi3 & ")"

DoCmd.RunSQL "DELETE FROM kayit_silinecek__tablo_adi WHERE id=" & Me.id_denetimi_adi
DoCmd.SetWarnings True

yukarıda yazılı kod kalıpları benzeri kullanım ile sonuç elde edebilirsiniz.eğer kayıt silme işlemi için kritere göre değil de direkt olarak tablodaki tüm kayıtları silmek isterseniz,

DoCmd.RunSQL "DELETE * FROM kayit_silinecek__tablo_adi"

benzeri kod kalıbını kullanmanız yeterlidir.

bu kodların bitiminde eğer sonuçları hemen akabinde görmek istiyorsanız ana formu veya varsa alt formu güncellemeniz için .REQUERY kod satırını da dahil etmelisiniz.bilginize...iyi çalışmalar,saygılar.
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#4
Çok Teşekkürler.
Hemen deniyorum
Cevapla
#5
(12/05/2017, 11:52)ozanakkaya yazdı: Merhaba,

Referanslara "Microsoft ActiveX Data Object 2.8 library" referansını ekleyip, butonun tıklandığında olayındaki kodu aşağıdaki ile değiştiriniz.

StrSQL = "SELECT * FROM Veri_Tabanı"
Set rstkayit = New ADODB.Recordset
rstkayit.Open StrSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With rstkayit
.Find "[Kimlik]=" & [Form1].Form![Kimlik]
If rstkayit.EOF Then

.AddNew
.Fields("S_NO") = [Form1].Form![S NO]
.Fields("FİRMA_ADI") = [Form1].Form![FİRMA_ADI]
.Fields("FATURA_TARİHİ") = [Form1].Form!FATURA_TARİHİ
.Fields("FATURA_NO") = [Form1].Form!FATURA_NO
.Fields("TUTARI") = [Form1].Form!TUTARI
.Fields("AÇIKLAMA") = [Form1].Form!AÇIKLAMA
.Fields("Teslim_Tarihi") = [Form1].Form!Teslim_Tarihi

.Update
End If
End With

DoCmd.SetWarnings False
   DoCmd.RunSQL "DELETE Fatura_tutanak.Kimlik FROM Fatura_tutanak WHERE (((Kimlik)=[Form1].Form![Kimlik]))"
DoCmd.SetWarnings True


DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
Me.Form1.Requery
   MsgBox "Aktarma Yapıldı.", , "Bilgi"

Ozan Hocam dediğinizi yaptım lakin fatura tutanak tablosundan sadece son kaydı aktarıp siliyor. Bunu listede bulunan tüm kayıtların aktarılması ve silinmesi gibi düzeltebilir misiniz? Rica Etsem
Cevapla
#6
Merhaba,
Butonun tıklandığında olayındaki kodları aşağıdaki ile değiştiriniz.

DoCmd.SetWarnings False

DoCmd.RunSQL "INSERT INTO Veri_tabanı ( FİRMA_ADI, FATURA_TARİHİ, FATURA_NO, TUTARI, AÇIKLAMA, Teslim_Tarihi ) SELECT Fatura_tutanak.FİRMA_ADI, Fatura_tutanak.FATURA_TARİHİ, Fatura_tutanak.FATURA_NO, Fatura_tutanak.TUTARI, Fatura_tutanak.AÇIKLAMA, Fatura_tutanak.Teslim_Tarihi FROM Fatura_tutanak;"

MsgBox "Aktarma Yapıldı. ", , "Bilgi"
   
DoCmd.RunSQL "DELETE Fatura_tutanak.Kimlik FROM Fatura_tutanak;"
   
Me.Form1.Requery
   
DoCmd.SetWarnings True
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task