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
Tablolar Arası Aktarma Sorunu
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.
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"
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.
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,
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.
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.
Çok Teşekkürler.
Hemen deniyorum
Hemen deniyorum
(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
Merhaba,
Butonun tıklandığında olayındaki kodları aşağıdaki ile değiştiriniz.
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
Konuyu Okuyanlar: 1 Ziyaretçi