Tablo düzeyinde geçerlilik kuralı

1 2 3
18/12/2014, 10:39

Mecnun24

Merhabalar, basit bir çalışmam var. Bir tabloda borç ve alacak sütunları var. Tabloya geçerlilik kuralı atamak istiyorum. Şöyleki borç ve alacak alanları aynı anda boş bırakılamasın veya doldurulamasın. Yani birinden birinden biri ama yalnız biri mutlaka doldurulsun istiyorum. Nasıl yapabilirim ?
18/12/2014, 12:51

atoz112

Sayın Mecnun24,

Bahsettiğiniz talebinize yönelik olarak,aşağıdaki açıklamaların yeterli olacağı kanısındayım.

Formunuzdaki bir KAYDET butonu söz konusu olduğunda ilgili kaydı kaydetmeden öncesinde alan denetim kutu içerikleri kontrol ettirilerek eğer bahsini yaptığınız iki alana yönelik olarak boş içerik söz konusu ise,bu duruma dair bir uyarı mesajı dahil edilerek;ilgili alan denetin kutularına bilgi girilmesine kullanıcını yönlendirilmesi sağlanabilir.

ÖRNEK
Kod:
if Isnull(Me.borc_yazılacak_metin_kutusu_adi) or Isnull(Me.alacak_yazılacak_metin_kutusu_adi) Then

Msgbox ("Borç / Alacak alanlarını doldurunuz.")

Else

'...yapılacak diğer işlemler

End If

Veyahut da,tüm denetim kutularına yönelik olarak,genel (topluca) bir boş alan kontrolü de yapılabilir.

Ya da sizin bahsettiğiniz gibi,tablo tasarım sayfasında iken;Geçerlilik Kuralı ve Geçerlilik Metni satırlarını istenilen kriterlere göre düzenlemek sureti ile de yapılabilir.

ÖRNEK
ilgili alanların tablo tasarım sayfasında iken,
Geçerlilik satırlarına Is Not Null yazıp
Geçerlilik Metni için de "Boş geçmeyiniz" yazabilirsiniz.


Her bir konuda,site içerisinde kendi hususlarında aralamalarda bulunarak,daha fazla bilgi de edinebilirsiniz.bilgilerinize.İyi çalışmalar,Saygılar.
18/12/2014, 13:42

Mecnun24

Sayın atoz112, ilginize teşekkürler. Sorunu en başından çözmek istiyorum aslında, form safhasına gelmeden. Haklısınız her sütunun kendi geçerlilik kontrolünü yaptırabilirim ama mesela borç ve alacak sütunlarına is not null yazıp boş geçilememesini sağladım diyelim bu sefer ikisini de doldurmamı isteyecek Access. İki sütunda da veri olmasını istemiyorum zaten. Ya borç dolu olacak yada alacak sütunu ve illaki bir sütun dolu olacak. Bunun için sütun bazında değil tablo bazında geçerlilik kontrolü yapmam lazım gibi geliyor bana. Ancak doğru ifadeyi bulamadım bir türlü. Şu an IsNull([HrkBorc]) And IsNull([HrkAlacak]) geçerlilik kuralı var tabloda. Bu haliyle iki sütunun aynı anda dolu olmasına izin vermiyor. Bu ifadeye or ile iki sütundan en az birinin dolu olmasını sağlayacak ifadeyi eklemem lazım ancak bulamadım.
18/12/2014, 14:18

atoz112

sayın Mecnun24,

aşağıdaki kod satırlarını kullanabilirsiniz.

Kod:
If IsNull(Me.Metin0) And IsNull(Me.Metin2) Then

MsgBox ("borç / alacak alanları boş") & vbCr & "Kontrol ediniz"

ElseIf IsNull(Me.Metin0) Or IsNull(Me.Metin2) Then

'...yapılacak diğer işlemler

End If
kodlamada,eğer her iki alan da boş ise,iki alandan birini doldurmanız istenecektir.
eğer iki alandan biri dolu ise de,o zaman da;sonraki yapmanız gereken işlemleri kod olarka belirtmeniz yeterlidir.bilgilerinize.

EK'te,bu hususa dair örnek uygulama mevcuttur.inceleyebilirsiniz.

iyi çalışmalar,
saygılar.
18/12/2014, 14:55

Mecnun24

Kusura bakmayın ben tam olarak anlatamadım ne istediğimi. Bu tablo kapsamlı bir tablo ve bu tabloya dayalı veri kaynağı olarak alacak 20-25 adet form düzenlemeyi planlıyorum. Her form için ayrı ayrı dediğiniz kodları yazmak yerine, tablonun geçerlilik kontrolünü yaptırmak istiyorum. Yanlış telaffuz ediyor olabilirim, ekteki resimde yapmak istediğim şey tam olarak görünüyor. Teşekkürler tekrar.
18/12/2014, 16:06

atoz112

sayın Mecnun24,


tablonuzun tasarım sayfasında iken;

Geçerlilik Kuralı satırına


Kod:
[borc] Is Null And [alacak] Is Null

yazınız.Geçerlilik Metni satırına da

"borç / alacak bilgilerini kontrol ediniz"

gibi benzeri bir uyarı mesajı yazınız.böylece,borç veya alacak metin kutularına biri boş bırakılarak değerler girildiğinde sorunsuz kaydedecektir.eğer ki,her iki metin kutusuna da bir değer girildiğinde (her iki değer de yazılıysa),geçerlilik metninde yazılı uyarı ekranda belirecektir.

EK'te,bu açıklamaya dair örnek uygulama mevcuttur.inceleyebilirsiniz.bilgilerinize.

iyi  çalışmalar,
saygılar.
1 2 3