Ana içeriğe atla

Asp.Net Web & Ms Access 2010 birden fazla tabloları birleştirmek

Yaza yaza bitiremediğim ve bitiremiyeceğim. Ms Access ile ilgili Xp-2003-2007 ve 2010 sürümleri hakkında yazdıklarım hala blogun en ilgi çekici konuları arasında yar alıyor...

Ms Access Formları tasarımları yapmak isteyen kişilerin web üzerinde en çok aradıkları iki veya daha fazla Ms Access tablolarını naslı birleştirilir? sorusu olduğuna eminim.Bu blog ile Ms Access iki veya daha fazla tablonun nasıl birleştireceği konusunda faydalı bilgileri paylaşmayı düşünüyorum.Hatta bu yazıyı biraz daha ileri götürerek bir seri yazı halinede getirebilir ve Ms Access ile hazırlayacağımız veritabanımızı ilişkileri tasarlanmış yada tasarlanmamış olsun. Asp.Net Web projelerinde nasıl kullanabileceğimizede göz atabiliriz.Böylece Ms Access yeni bir arayüz deneyimi edinebilir ve tasarlamak istediklerinizin kapsamını genişletebilirsiniz.Eğer Ms Access 2010 ürününüz varsa ve bu sözünü ettiğim bilgileride edinmek istiyorsanız şimdi başlayabiliriz.


Başlarken;
Bir senaryo yazalım ; Ms Acces ile okulumuzun kullanacağı bir uygulama geliştirmek istiyoruz.Uygulamamız veritabanı olarak Ms Acces kullanacak, Uygulamadan edineceğimiz fayda Öğrenci,Öğretmen kayıtları ile Sınıflar,Dersler ve Öğrenci velileri gibi bilgileri kaydedecek ve daha sonra bu kapsamı dahada genişleterek öğrenci ve öğretmenlerin ortak kullanabileceği güzel bir program edineceğiz.Elbette bunu yaparken Asp.Net Web Ado.Net- OleDb gibi teknolojileride uygulamamıza dahil edeceğiz.Evet bu enterasan senaryodan sonra artık veritabanımızı öncelikle fiziksel olarak tasarlayalım.

Hazırlık;
Bu yazı içeriği size Ms Access tablo birleştirme ve birleştirme işlemlerine alternatif  bilgileride sağlayacaktır ve öncelikli olarak veritabanı tasarımındaki önemli detayları inceleyerek aşama aşama bir uygulama sonuncuna gideceğimizden, daha önceki yazılmış benzer yazıların referans adreslerini vermeliyim.Elbette bu yazıda geçen örneği anlamak için Tablo oluşturabilecek kadar bilgiye sahip olmanız yeterlidir...

Ms Access nedir ve Ms Acces ile neler yapılabilir
Ms Access İki Tablo arasında ilişki kurmak
Ms Access Asp.Net Web uygulamalarında nasıl kullanılır

Senaryoya göre 5 adet Ms Access tablosuna ihtiyacım vardı.


Yandaki resimdede görebildiğiniz gibi 5 adet Ms Access Table edindim.

Her Table için bir PrimaryKey yani birincil anahtar Otomatik sayı mevcut, diğer Field (alan)ların geneli metin tipinde.

Ancak şunlara dikkat edelim !
Ogrenciler tablosunda SınıfId - VeliId
Ogretmenler tablosunda OgretmenBrasnId
Sınıflar tablosunda SınıfOgretmenId
Alanları Numeric (Sayı) veri tipindedir...

Bunun nedeni ise Ms Access 2010 ürünü marifetiyle Relation(İlişki) kuracağımız sırada kullanmak isteyebileceğimiz içindir.Buna göre şu anlatım daha açıklayıcı olacaktır."Her bağlantı kurulacak olan Table'da bulunan Primary Key(Birincil Anahtar) ile bağlantı sağlayacak Table'da bulunan, Sayı tipindeki alanlar ForeignKey (Dış Anahtar) olarak kullanılabilecektir".Bu Ms Sql database tasarımları içinde geçerli bir yöntemdir.Bu konuda daha detaylı bilgiyi Ms Sql Server Managment Studio adlı yazımda okuyabilirsiniz.

Ms Access Tablolarını birleştirmek için farklı yöntemler varmıdır bunlar nelerdir ?
Evet yukarıdaki türden bir tasarım tablo birleştirmek için size farklı yöntemleri kullanabilmenizi sağlar ve projenizin uygulama katmanına göre değişiklik gösterir!
Bu yöntemler ise;
1- Ms Access 2010 ile birleştirme fiziksel (relation) PrimaryKey-ForeignKey
2- Asp.Net ObjectData-SqlDataSource-Table Adapter gibi SQL Query kullanarak.

Bu yöntemlerden birini seçmeniz halinde uygulamanızın teknik tipinide belirlemiş olursunuz. Buna göre 1nci yöntem ile bir birleştirmeyi Access Formları-Raporları-Sayfalarında yine Ms Access Sorgularında kullanabilir ve Form uygulamalarınızda görüntüleyebilirsiniz, bu en basit yöntemdir ve birleşim sonuçlarını Web projenizde kullanabilirsiniz. 2nci yöntemde ise Web projenizde Ms Sql SubQuery ile birleştirebilir ve fiziksel bir ilişkilendirmeyi yapmayabilirsiniz.Fakat bu birleşimi Acces Formları üzerinde görüntüleyemezsiniz.Her iki yönteminde detaylarını, senaryomuzu tam olarak gerçekleştirinceye kadar devam edecek yazılarımı okuyarak öğrenebilirsiniz.İlk yöntemimizi yerine getirelim.

Ms Access Table birleştirmek nasıl yapılır?

Ms Access 2010 içerisinde Table birleştirme işleminin en basiti Ms Acccess aracınızın Veritabanı Araçları - İlişkiler sekmesindeki soldaki resim gibi bir yerleşim sonrasında yapılabilir, yerleşim hazırlamak için sağ click Tablo Göster seçeneği ile tablolarınız ilişkiler kurmaya başlayabilirsiniz.

Birleştirmenin belirli ve mutlak koşulları ise;
Tablo/Sorgu > İlişki Tablo Sorgu şeklinde anlatılabilir.Yani alana başvuran Tablo alanı İlişki Tablodaki alana başvuracaktır ve veri tipleri mutlak aynı olacaktır.Birleşim 3 ana şart yada koşulla yapılabilecektir bunlar;

• Bilgi Tutarlılığına Zorla
• İlişkili Alanları Art Arda Güncelleştir
• İlişkili Alanları Art Arda Sil


Bahsedilen 3 birleştirme koşulun gerçekleşimi muhtemel ve istediğimiz birleştirmeyi sağlayacaktır.Örneğin Öğrenciler tablosunda bulunan öğrenci bilgileri ile öğrencinin velisinin bilgisi olan bir başka Ms Access ile birleştirmesi bize her iki tablonunda birlikte güncelenebilecek ve silinerek bilgi tutarlılığı sağlanacaktır.


Bu birleşime göre bir öğrencinin bilgilerini gördüğümüzde velisinin bilgilerinide sorgulayabilecek,kayedebilecek yada silebileceğiz.


Diğer birleşimlerde bu mantıkla devam ettiğimizde..









Aşağıdaki şekilde görülen bir yerleşim ve ilişki şeması oluşturmuş olacağız.

Eğer herşey yolunda gitmiş ve birleştirme işlemini doğru şekilde yapmış isek artık art arda kayıtlar sorunsuzca kaydedilecektir.İlişkileri hazırlarken bilgisini verdiğim 3 önemli koşula bağlı birleşimi veri eklerken test  ederek bir kaç örnekle inceleyebiliriz.
Aldığım hata Yeni bir öğretmen kaydı yaparken öğretmenin branş olarak yazdığım 1 sayısının Dersler tablosunda olmadığını söylüyor.Birleştirememe göre Dersler aynı zamanda Öğretmenlerin branşlarını kapsıyor.

Yukarıdaki öğretmen tabloma yeni bir öğretmen kaydını solda görünen Dersler tablosunda yaptığım kayıtlar ile tamamlayabilirim.Buna göre ilk kaydım olan Serkan Şenyüz adlı öğretmen aynı zamanda matematik öğretmeni branşı olarak kaydedilmiş olacaktır.


İlişkiler ilişki kurulan tüm tablolar alt kayıtlar şeklinde görüntülenebilir.İlişkileri tamamlanmış Ms Access veritabanı için örneğimizde bulunan Dersler tablosunda Öğretmenler Sınıflar ve Öğrenciler görüntülenmektedir.
















Blog başında söylediğim gibi geliştirmeye başladığımız Ms Access ve Asp.Net Web Uyumlu Okul programının devamını bu blogtan adım adım okuyarak kendiniz geliştirme imkanı bulabilirsiniz..
      Bu Yazının Sponsorları













Yorumlar

  1. çok güzel örnek çalıyorum yrn öğrencilere anlatayım teşekkürler..

    YanıtlaSil
    Yanıtlar
    1. eğitim şart, eğitime katkım olduysa ne güzel. iyi dersler...

      Sil
    2. eline sağlık yazın çok başarılı. devamını bekliyorum. iyi çalışmalar.

      Sil
  2. iyide kardeş ilişkili tabloyu asp de nasıl kullnacaz bunu herkes biliryor zaten

    YanıtlaSil

Yorum Gönder

Bu blogdaki popüler yayınlar

Firebird SQL Table oluşturma ve SQL komutları

2 nci  Firebird SQL veritabanı blogunda bu kez mevcut Firebird veritabanına ISQL ile bağlanmayı veritabanı nesnelerini oluşturmayı (create table), Kayıt eklemeyi (ınsert) ve kayıtları izlemeyi (show) ile önemli SQL komutlarını anlatmaya çalışacağım...

Firebird Veritabanı Nedir ? Nasıl Kullanılır

Firebird ücretsiz veritabanı kullanmaya ne dersiniz.Üstelik hiç bir süre ve veri sınırı olmadan kulağa hoş geliyor değilmi.Bu Blogta Borland açık kaynak interbase 6 sürümünden sonra ortaya çıkmış ve gelişimini sürekli sürdürmüş Firebird veritabanına bir göz atıcaz. İnternet üzerinde Firebird ile kaynağa çok sık rastlamazsınız artık bu blogtan Firebird ile ilgili bilgileri takip edebilirsiniz...

Asp.Net Access veritabanina resim ve nesne kaydetmek OLE Nesnesi

Ms Access ile ilgili geçmiş yazılarım arasında biraz vakit geçirmişseniz, Ms Access form uygulamaları yada veritabanı olarak kullanmayı sevdiğimi anlamışsınızdır. Birazdan size anlatmaya çalışacağım konu Ms Access veritabanı olarak kullandığımız bir Asp.Net Web projesinde resimleri ve dosyaları paket halinde veritabanının içine gömmek olacak.Neden bilmiyorum bu konuda Türkçe kaynak yok, merak etmeyin bu yazı size iyi gelecek...