Farklı 2 Tablodan Veri Silme Nasıl ?

Uncle55550
02-01-2018, 01:45   |  #1  
Uncle55550 avatarı
OP Taze Üye
Teşekkür Sayısı: 0
2 mesaj
Kayıt Tarihi:Kayıt: Oca 2018

Arkadaşlar selamlar,

Tek bir .MDB ( adı diyelimki "01.mdb" olsun ) database dosyasında bulunan farkı isimli 2 tablo ( adları diyelimki " tablo_01" ve "tablo_02 " olsun ) içerisinde bulunan ilgili verileri silmek istiyorum.

Basitçe Şöyleki: "tablo_01" isimli tabloda ;

       USTID | URUN
        1   | GİYİM      
        2   | GIDA
        3   |  ELEKTRONİK

        olsun. " tablo_02" isimli tablo da ise;

        ALTID  |  ALTURUN  |  USTID
        1         |  PEYNİR        |     2
        2         |  KAZAK         |     1
        3         |  SÜT               |    2
        4         |  TELEFON     |    3
        5         |  SAAT            |     3
        6         |  YUMURTA    |     2
        7         |  AYAKKABI    |     1
        8         |  TABLET         |    3

Şimdi bu farklı iki tabloda bulunan verilerden diyelimki delet komutu ile tablo_01 deki GIDA  menüsünü silmek istiyorum. Buraya kadar kolay ancak bundan sonrası yapmak isteyip de yapadığım kısım.
Mesela bir menü seçelim ve;  bu GIDA (USTID - 2) menüsü olsun. Bunu silerken yazılacak kod ile  tablo_02 de bunun USTID si ile bağlantılı olan verileride ( mesela ALTID 1 PEYNİR- ALTID 3 SÜT - ALTID 6 YUMURTA ) yani bu menüye bağlı USTID
leri 2 olan tüm verileri de beraber silinsin istiyorum.  Bunu Access database tablosundan silecek kodu yazabilecek bir arkadaş bana yardımcı olursa çok memnun olacağım. Şimdiden yardım eden ve zaman ayıran her dosta teşekkürler...

Son Düzenleme: Uncle55550 ~ 02 Ocak 2018 01:47 Neden:
White-Fox
02-01-2018, 19:13   |  #2  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,104 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

sql da trigger konusunu öğren yapmak istediğin şey o sanıyorum :)

Ayrıca access ile proje geliştirmeni tavsiye etmem.

Son Düzenleme: White-Fox ~ 02 Ocak 2018 19:13
chnkyn
03-01-2018, 04:02   |  #3  
Taze Üye
Teşekkür Sayısı: 1
16 mesaj
Kayıt Tarihi:Kayıt: Eki 2017

tam olarak yapmak istediğin şey eğer tablo1 de bir kategori örn giyim. silindiğinde tablo2 de üstid si giyim (1) kategorisine denk gelen tüm ürünleri silmek istiyor isen. tabloları oluştururken ilişkiler kurmalısın.tablo1 den tablo2 ye UstId leri 1'e çok ilişkili kurduğunda delete ve update actions larına cascade diyerek tablo1 den silinen bir kategoriye ait tablo 2 deki tüm ürünler silinir.tabi bu sql içindi.access te olup olmadığını hatırlamıyorum.eğer yok ise bile arkadaşın dediği triggerlar ile veya onsuz da yapabilirsin.

tablo1 deki giyimi silmek istediğini varsayalım.bunun UstId=1 dir.2 ayrı metot yapabilir veya tek metot içinde halledebilirsin.

delete from tablo1 where UstId=1

delete from tablo2 where UstId=1

şeklinde tablo1 deki kategoriadı ve tablo2 deki tüm ürünler silinir.

sorguyu böyle yaptıktan sonra Sqlcommand nesneni  ExecuteNonQuery() ederek etkilenen satırları öğrenirsin.-1 değilse başarılı olmuş demektir.

bir kurum için tasarlıyorsan access iş görür ama çok kişiye hizmet edecek ise sql öneririm.access e en fazla belirli sayıda ( hatırladığım kadarıyla 120 lerde falan) kişi bağlanabiliyordu.