PRATİK BİLGİLER
Bugünkü makalemizde bir çok MS Access kullanıcısının sorduğu bir konuya ışık tutmak istiyorum.
Öncelikle mükerrer kaydı bir tabloda göstermek istiyorum.
Tablolarımızı oluşturduk, buna bağlı formlarımızı oluşturduk, Şimdi bu formlara veri girişi yapacağız. Veritabanı mantığında şöyle bir kural vardır. Hiç bir zaman 2 veya daha fazla kayıt aynı olamaz. Her kaydın benzersiz olma özelliği olmalıdır. Şöyleki; Örnek tablo üzerinden gidelim. Bir tane personel bilgilerini barındıran bir tablomuz olsun,
Alanları ise aşağıdaki gibi olsun.
- Adı
- Soyadı
- Doğum Yeri
- Ünvanı
1.Kayıt:
- Adı: Hasan
- Soyadı: Kar
- Doğum Yeri: İzmir
- Ünvanı : Memur
- Adı: Hasan
- Soyadı: Kar
- Doğum Yeri: İzmir
- Ünvanı : Memur
Adı Soyadı Doğum Tarihi Ünvanı aynı olan kişi olabilir. Fakat gerçekte bu kişiler aynı mıdır? Tabii ki hayır. Peki biz o zaman bu iki vatandaşı birbirinden nasıl ayırdedeceğiz. Çok basit, Tabloya bir tane anahtar alan (Primary Key) ekleyerek. Primary Key ne demek, benzersiz alan demek, Şimdi örneğimize uygulayıp öyle bakalım.
1.Kayıt:
- PersonelID: 1
- Adı: Hasan
- Soyadı: Kar
- Doğum Yeri: İzmir
- Ünvanı : Memur
- PersonelID: 2
- Adı: Hasan
- Soyadı: Kar
- Doğum Yeri: İzmir
- Ünvanı : Memur
Şimdi gelelim konumuza Önce Mükerrer kayıt diye tanımladığımız bilginin hangi bölümü aynı olursa mükerrer olur? bu soruya cevap bulmamız gerekiyor. Şimdi yukarıdaki işlemi uyguladığımızda ortaya mükerrer bir kayıt çıkmayacaktır, Neden çünkü her kaydın benzersiz bir ID si bulunacaktır. Bundan sonraki alan veya alanlar için mükerrer kayıt kontrolü yapılabilir.
Örneğin Adı alanında tekrarlayan aynı isim girilirse kullanıcı uyarılsın.
Bunun için Adı Alanının (AfterUpdate) Güncelleştirme Sonrasında Olayına aşağıdaki kodu yazalım.
Option Compare Database
Option Explicit
Sub Adı_AfterUpdate()
If
DLookup("Adı","tbl_Personel","Adı = '" &
Me.Adı & "') Then
Me.Undo
MsgBox
"Adı Alanına girmiş olduğunuz " _
&
Me.Adı & " Adlı isim daha önce girilmiş." _
&
vbCr & vbCr & "Lütfen Farklı bir isim giriniz.",
vbInformation _
,
"Mükerrer Veri"
Me.Adı=""
Me.Adı.SetFocus
End If
End Sub
|
Yukarıdaki kod parçasında DLookup fonksiyonu ile Adı alanına girilen değeri tbl_Personel tablosundan kontrol ediyoruz. Eğer aynı isim tabloda var ise girilen değeri geri alıyoruz ve Msgbox mesaj kutusu ile uyarı veriyoruz, Eğer tabloda bulunamamış ise hiç bir işlem yaptırmıyoruz, veri girişine bir sonraki alandan devam ediyoruz.
Evet Arkadaşlar diğer alanlar içinde mantık aynıdır. Sadece kod içerisinde geçen Alan Adını kontrol etmek istediğiniz alanın adını yazmanız yeterlidir.
Dikkat etmeniz gereken bir diğer husus ise karşılaştırmak istediğiniz veri tipine göre DLookup söz diziminde değişiklik yapmanızdır.
Mesela karşılaştırmak istediğiniz alan sayısal ise,
If DLookup("Adı","tbl_Personel","Adı
= " & Me.SayısalAlan ) Then
|
Eğer tarih alanını karşılaştırmak isterseniz,
If DLookup("Adı",
"tbl_Personel", [DogumTarihi]= #" & _ DogumTarihi &
"#") Then
|
komutlarını kullanabilirsiniz.
Şimdilik,
Hoşcakalın...
0 Yorumlar