Bahsettiğiniz çözüm kodlaması incelendiğinde kayıt silme işlemi için harici olarak üç kodlama hazırladığınız görülmektedir.frm_ana kapandığında olayında yazdığınız kodlama,form1 formundaki tbsil kodunda da mevcut.bu aynı işlemlerin tekrarından ve dolayısıyla da uygulamayı yormaktan dolayı yeniden düzeltilmesi gereken bir husus diye bakılmasını düşündürtmektedir.
Alıntı:...Şeklinde değiştirerek önce boş satır varsa silmesini, ardından tablo2 ye aktarmasını ve son olarak tümünü silmesini sağladım...diye açıklamışsınız.Çalışma anlamında verim alıyor olabilirsiniz fakat bu kadar yayılmış ve tekrarlı kodlamadansa aşağıdaki gibi bir kodlama yeterli olmaktadır.
Sub tblsil()
'Ana_Tablo2 tablosuna kaydetmek için
DoCmd.SetWarnings False
DoCmd.RunSQL "INSERT INTO Ana_Tablo2 (SORULANSORU, VERILENCEVAP) SELECT Ana_Tablo.SORULANSORU, Ana_Tablo.VERILENCEVAP FROM Ana_Tablo LEFT JOIN Ana_Tablo2 ON Ana_Tablo.ID_ANA = Ana_Tablo2.ID_ANA where Ana_Tablo.VERILENCEVAP is not null"
'eğer Ana_Tablo'dan sadece cevabı BOŞ olan kayıtlar silinsin istenirse aşağıdaki Sql sorgulama yeterli
DoCmd.RunSQL "delete from Ana_Tablo where VERILENCEVAP is null"
'eğer Ana_Tablo isimli tablodaki BÜTÜN kayıtları silmek istiyorsanız aşağıdaki kodu geçerli yapınız
' DoCmd.RunSQL "delete * from Ana_Tablo"
DoCmd.SetWarnings True
MsgBox "kaydetme ve silme işlemleri tamamlandı"
'DoCmd.OpenForm "frm_ana", acNormal
'DoCmd.Close acForm, "Form1", acSaveNo
End Sub
son eklenen örnek çalışma bu şekilde hazırlanmıştır.fakat örneği inceleme isteğinde olmadığınız da görülmektedir.
Yorumlar ise,sadece ilk etapta edinilen izlenimlere dair düşünce paylaşımlarıdır.amaç ise,daha verimli ve sizi ve uygulamayı yormayacak,uğraştırmayacak sorunsuz ve rahat bir kullanım elde edilebilmesinin sağlanmasına dairdir.
İyi çalışmalar,
Saygılar.