Skip to main content

AccessTr.neT


Mükerrer Kayıt Kontrolü

Mükerrer Kayıt Kontrolü

#7
(05/12/2014, 19:14)atoz112 yazdı: Sayın access06,

Eklediğiniz örnek uygulamanız incelendiğinde aşağıdaki hususun olduğu görülmektedir.

Son eklediğiniz kodlamaya göre yorumlamak gerekirse,tablonuzdaki KAYIT_NO alanının Varsayılan Değer satırına 0 (Sıfır) değeri yazdığınız için,bu kodlama ilgili olay yordamına dahil edilerek çalıştırıldığında;daha önce girilmiş olan bir KAYIT_NO yazıldığında evet uyarı veriyor fakat hemen akabinde de ilgili denetime 0 değerini yazıyor.doğal olarak da;bilgi girişi yapıldı düşünülerek ve sıfır değeri de daha önce mevcut olmadığından geçerli sayılıyor.bu hali ile de yeni bir kayıt gibi tablonun ilk satırına ekliyor.bunu belirterek,bu hususa dikkat çekmek istedim.

Ayrıca,mükerrer kayıt kontrolü talebiniz öncesinde de bu hususun bilinmesi gerekir. evrakkayit isimli tablonuzun içeriğinde; KAYIT_NO alanınızın Sıralı satırı Evet (Yineleme Yok) olarak işaretlenmiş.doğal olarak da zaten bu işaretleme sonucunda form üzerinde yeni bir kayıt açıp bu alana önceki kayıtlardan girilmiş olan benzer bir değer girdikten sonrasında kayıt yapmak istediğinizde size,bir uyarı bildirimi ile daha önce girilmiş olan bir değer girilmiş olduğunu belirterek yineleme yapılamayacağını gösterecektir.bu nedenle de,harici bir uyarı kodlaması yapmanıza gerek kalmadan size bu uyarı zaten yapılacaktır.

Fakat,sizin istediğiniz gibi;tablodan değil de harici kodlama ile (isteğe göre herhangi bir Olay Yordamı içerisinde) belirtmek için,öncelikle tablonuzdaki KAYIT_NO alanının Birincil Anahtar tercihini iptal etmelisiniz.böylece,Sıralı satırı,Hayır olarak kalacaktır.Varsayılan Değer satırındaki sıfır değerini de iptal ediniz.

Son olarak,form üzerindeki KAYIT_NO denetiminin Çıkıldığında Olay Yordamı içerisine ilgili kodları dahil ettikten sonra,yeni kayıt yapmaksızın diğer kayıtları gezinmek istediğinizde,her bir kayıt öncesinde ilgili uyarı mesajı ekranda belirecektir.bunu engellemek için,ekteki örnekte bir çalışma oluşturulmuştur.

EK’te;talebinize yönelik olarak alternatif olması açısından hazırlanmış örnek uygulama mevcuttur.inceleyebilirsiniz.
bilgilerinize...İyi çalışmalar,Saygılar.

İşte bu. paylaşımcılık harika birşey. Ben soruyu sordum evet, ama cevabı bulunca buldum diye bırakmadım ve yine soruyu sorduğum yerde paylaşmayı tercih ettim. Çünki çok istifade ettiğim bir yer ve başkalarına da lazım olabilir. Buna rağmen alternatifin paylaşılması ise daha başka bir güzel.

Teşekkürler.

Ancak önceki sayfada paylaştığım ve aşağıda verdiğim

Dim SID As String
Dim stLinkCriteria As String
SID = Me.[KAYIT_NO].Value
stLinkCriteria = "[KAYIT_NO]=" & "'" & SID & "'"

If DCount("*", "evrakkayit", "KAYIT_NO  =" & Me.KAYIT_NO) > 0 Then


   MsgBox "Girdiğiniz     - " _
          & SID & " -     Kayıt Numarası daha önce verilmiştir." _
          & vbCr & vbCr & "Lütfen Kayıtları Kontrol Ediniz.", vbInformation, "Mükerrer Kayıt No Hatası...!"

Me.Undo
Else
Exit Sub
End If

bu kod ile, birincil alan durumunu değiştirmeden ve varsayılan değerin 0 olmasını değiştirmeden alan kontrolü yapılıyor. Mükerrer kayıt varsa mükerrer girilen kayıt numarası ile birlikte uyarıyı gösteriyor.

ayrıca KAYIT_NO alanından çıkıldığında özelliğine

If KAYIT_NO <= 0 Then
MsgBox "KAYIT NO ALANINA SIFIRDAN BÜYÜK Bİ DEĞER GİRİNİZ", 48, "  LÜTFEN DİKKAT .."

GELDIGI_YER.SetFocus
Cancel = True
End If

yazılarak bu alanın sıfırdan büyük bir değer olması gerektiğine dair uyarıyı da verdirmiş oluyoruz. Bu uyarıdan sonra da alt satır olan GELDİĞİ YER alanına yönlendiriyoruz, yoksa KAYIT NO alanından çıkılamayacağı için.

Buna dair örneği de ekliyorum. Birçok arkadaşımıza lazım olabilecek yardımcı bir çalışma olacağına inanıyorum.

Desteğini esirgemeyen herkese canı gönülden selamlar sunuyorum.

(Paylaştıkça paylaşılan şeyin güzelliğin ve değerinin arttığına inananlardanım.)
.rar ornek_access06.rar (Dosya Boyutu: 31,86 KB | İndirme Sayısı: 14)
Son Düzenleme: 05/12/2014, 20:33, Düzenleyen: access06.
Cevapla
#8
Sayın access06,

Form üzerindeki KAYIT_NO denetim kutusuna bir değer yazılmaksızın boş geçilmesini engelleme işlemini de uygulamanız yerinde olacaktır.böylece, SID = Me.[KAYIT_NO].Value ifade satırında değişkene değer ataması yapılırken Null (boş geçilmesi) durumu söz konusu olduğunda bu ifade satırında hata vermesine engel olursunuz.

Alıntı:...Son eklediğiniz kodlamaya göre yorumlamak gerekirse,tablonuzdaki KAYIT_NO alanının Varsayılan Değer satırına 0 (Sıfır) değeri yazdığınız için,bu kodlama ilgili olay yordamına dahil edilerek çalıştırıldığında;daha önce girilmiş olan bir KAYIT_NO yazıldığında evet uyarı veriyor fakat hemen akabinde de ilgili denetime 0 değerini yazıyor.doğal olarak da;bilgi girişi yapıldı düşünülerek ve sıfır değeri de daha önce mevcut olmadığından geçerli sayılıyor.bu hali ile de yeni bir kayıt gibi tablonun ilk satırına ekliyor.bunu belirterek,bu hususa dikkat çekmek istedim...

EK’teki resimlerde;hem bu boş geçildiğinde oluşan işlemlerin görselleri hem de 0 kayıt nolu bir kaydın 1.kayıttan öncesine atadığının görselleri söz konusu.inceleyebilirsiniz.bir önceki mesajda size bahsi yapılan yukarıdaki husus ile ilgili bildirimdir.ayrıca,burada yazılanlar,yine sizin uygulamanızın biraz daha iyileştirilmesine katkı sağlamak amaçlıdır.(resimler;sizin son eklediğiniz örneğiniz üzerinden anlatımdır).bilgilerinize.

İyi çalışmalar,Saygılar.
.rar resimler.rar (Dosya Boyutu: 303,31 KB | İndirme Sayısı: 19)
Herkes, kendisinin AR-GE'cisidir...


Konulara eklenen Uygulama içeriğine yönelik Tavsiyeler
Alt Form Denetim Değerlerine ulaşma ve Alt Form Güncelleme
Kapatırken Düzenle (Compact On Close) Seçeneğinin İşaretlenmesi Hakkında
Cevapla
#9
(05/12/2014, 21:51)atoz112 yazdı: Sayın access06,

Form üzerindeki KAYIT_NO denetim kutusuna bir değer yazılmaksızın boş geçilmesini engelleme işlemini de uygulamanız yerinde olacaktır.böylece, SID = Me.[KAYIT_NO].Value ifade satırında değişkene değer ataması yapılırken Null (boş geçilmesi) durumu söz konusu olduğunda bu ifade satırında hata vermesine engel olursunuz.


Alıntı:...Son eklediğiniz kodlamaya göre yorumlamak gerekirse,tablonuzdaki KAYIT_NO alanının Varsayılan Değer satırına 0 (Sıfır) değeri yazdığınız için,bu kodlama ilgili olay yordamına dahil edilerek çalıştırıldığında;daha önce girilmiş olan bir KAYIT_NO yazıldığında evet uyarı veriyor fakat hemen akabinde de ilgili denetime 0 değerini yazıyor.doğal olarak da;bilgi girişi yapıldı düşünülerek ve sıfır değeri de daha önce mevcut olmadığından geçerli sayılıyor.bu hali ile de yeni bir kayıt gibi tablonun ilk satırına ekliyor.bunu belirterek,bu hususa dikkat çekmek istedim...

EK’teki resimlerde;hem bu boş geçildiğinde oluşan işlemlerin görselleri hem de 0 kayıt nolu bir kaydın 1.kayıttan öncesine atadığının görselleri söz konusu.inceleyebilirsiniz.bir önceki mesajda size bahsi yapılan yukarıdaki husus ile ilgili bildirimdir.ayrıca,burada yazılanlar,yine sizin uygulamanızın biraz daha iyileştirilmesine katkı sağlamak amaçlıdır.(resimler;sizin son eklediğiniz örneğiniz üzerinden anlatımdır).bilgilerinize.

İyi çalışmalar,Saygılar.

haklısınız, kayıt no alanına 0 ile de kayıt yapılabiliyor. kendi uygulamamı kontrol ettim, burada belirtmeyi atlamışım. çok özür dilerim.

Geçerlilik kuralına >0 yazmışım ama burada belirtmeyi atlamışım.

Tablolarda evrakkayit  ta KAYIT_NO alanının geçerlilik kuralı  >0  yapıldığı zaman  0 ile kayıt yapılmasını engellemişim.


İlginize çok teşekkür ediyorum, resimleri ekleyerek zaman harcamışsınız. emeğiniz için çok teşekkürler.
Cevapla

Bir hesap oluşturun veya yorum yapmak için giriş yapın

Yorum yapmak için üye olmanız gerekiyor

ya da
Task