Foreign Key ve Relationship Problemi (Ana ve Yavru Tablo Kayıt silme)

13/08/2014, 23:04

umutakkaya



Arkadaşlar Visual Basic .NET ile Access veritabanı kullanarak bir program yazıyorum. Ancak ilişkilendirdiğim iki tablodan ilki olan anatablodan bir kayıt silindiğinde buna bağlı child tablodan ana tablodaki silinen kayıda uyan kayıtlarında silinmesi işlemine bir düzen veremedim.
Ya siliyor ama güncellemede yukarıdaki resimdeki hatayı veriyor yada bilmem işte olmuyor.
Bana kısaca bir yol gösterebilirmisiniz. İlk resimdeki ayarlamalardan nasıl bir ayar çekmeliyim ki anatablodan kayıt silinince buna uygun yada bu kayıtın altkayıtları da silinsin ve Access veritabanında da son durum kayıt edilsin.
Teşekkürler.
Kodlar aşağıda

'kaydet güncelle kodu
Me.Validate()
Me.AnatabloBindingSource.EndEdit()
Me.YavrutabloBindingSource.EndEdit()
Me.AnatabloTableAdapter.Update(DataBaseDataSet.Anatablo)
Me.YavruTabloTableAdapter.Update(DataBaseDataSet.YavruTablo)

'Form açıldığında kayıt getirme kodu
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.AnatabloTableAdapter.Fill(Me.DataBaseDataSet.Anatablo)
'TODO: This line of code loads data into the 'DataBaseDataSet.tb_haftalikders' table. You can move, or remove it, as needed.
Me.YavruTabloTableAdapter.Fill(Me.DataBaseDataSet.YavruTablo)
'TODO: This line of code loads data into the 'DataBaseDataSet.tb_Personeller' table. You can move, or remove it, as needed.


End Sub
14/08/2014, 21:34

umutakkaya



İlişkili bir ana tablodan kayıt silindiğinde alttablosundaki verilerinin de silinmesi için resimdeki seçimleri yaptıktan sonra sil butonuna Tb_AnatabloBindingSource.RemoveCurrent() yazıyorum alttablodaki veriler silinmiyor sadece anatablodaki seçili kayıt siliniyor.. Ama BindingNavigator daki Del tuşuna basınca hata vermiyor seçili anatablokaydını ve buna bağlı alttablodaki verileri siliyor. Formumdaki bindingNavigator daki Del tuşunda hangi komut var ve bu kodu ben istediğim bir butona yazabilirmiyim. Bindingnavigator kullanmak istemiyorum.
15/08/2014, 08:45

alpeki99

Müşterileri silmek için:

DELETE FROM musteriler WHERE musteriId=5

Müşterilerin ödemesini silmek için:

DELETE FROM odemeler WHERE musteriId=5

bu kadar basit bir işi bileşenler ile taklalar atarak halletmeye çalışıyorsunuz. Daha öncede dediğim gibi keşke bileşenlere bulaşmasanız. Programlama ile uğraşıyorsanız işinizi kodlar ile halletmeye çalışın. Bileşenlerden çok daha kolay olduğunu göreceksiniz.
15/08/2014, 18:04

umutakkaya

Teşekkürler...