selam ,
örnekte de görebileceğiniz gibi "şube adı" alanında mükerrer kayıt uyarısında sorun yok ama kullanıcı uyarıyı dikkate almaz formu kayıt eder yeni kayıt açar yada kapatırsa uyarı bir işe yaramıyor.benim istediğim kullanıcı mükerrer kayıtı düzeltmeden kaydet , kapat , yada yeni kayıt butonuna basarsa uyarı yine çıksın ve düzeltme yapılmadan kayıt kaydedilmesin ve kullanıcaya formdaki değişiklikler kaydedilmeden çıkma imkanı sağlansın .
yardımlarınız için şimdiden teşekkürler
iyi çalışmalar
Aynı kodu Kaydet butonu için de kullanın... İhtiyaç duyduğunuz yerlere ekleyin...
Koda iki şey ekledim. Me.Undo yapılanı geri alacak. Değişikliği yani... Setfocus ise odaklanma. Odaklanacağı yeri belirtiyoruz. Siz bunu kendinize göre değiştirin.
Kod:
subeadi = StrConv([subeadi], 1) ''yazılan metini büyük harfe çevirir
Dim S As String
Dim Adim As String
Adim = Me.subeadi
If Len(Adim) <= 0 Then Exit Sub
I = Nz(DCount("subekod", "subetbl", "subeadi='" & subeadi & "'"), 0)
If I > 0 Then
Me.subeadi.BackColor = vbRed
MsgBox "" & [subeadi] & " İsimli Şube Bulunmaktadır. " & Chr(10) & "Lütfen Farklı Bir Şube Adı Yazınız.", 48, " Kullanıcı Adı Hatası"
[color=#FF0000] subeadi.SetFocus
Me.Undo[/color]
Exit Sub
Else
Me.subeadi.BackColor = 16053492
End If
Kolay gelsin...
cevabınız için tesekkurler yazdıgınız kodu denedim setfocus anladıgım kadarıyla imlecin istediğim yere gitmesi eger oyleyse bu olmadı me.undo yapılan işlemi geri alıyor hatta geri almaktan çok kayıt siliyor gibi çünkü otomatik koddaki sıralamalarda atlamalar oluyor. benim formumda load olayında yapılan işlemleri kontrol eden kod var bu kod yapılan işlemi kaydetmeden çıkmaya kalkınca ve ya kaydet butonuna basınca uyarıyor mukerrer kayıtlarda da bu kodların calısmasını istiyorum yardımcı olursanız sevinirim.
aslında bir formda kaydetme- silme- yeni kayıt- değiştirme- mukerrer kayıt gibi durumları kontrol eden kullanıcının yapması muhtemel hatalar ve davranışlar goz onunde bulundurularak hazırlanmıs ornekler olsa cok daha ıyı olabılır pek cok
Access ornegınde bu durumlarda kontrol yok yada yetersiz.bu konuyada bılen bırılerı yardımcı olursa onada sımdıden tesekkurler
kolay gelsin , saglıcakla kalın
(04/03/2009, 22:46)nacre yazdı: cevabınız için tesekkurler yazdıgınız kodu denedim setfocus anladıgım kadarıyla imlecin istediğim yere gitmesi eger oyleyse bu olmadı me.undo yapılan işlemi geri alıyor hatta geri almaktan çok kayıt siliyor gibi çünkü otomatik koddaki sıralamalarda atlamalar oluyor. benim formumda load olayında yapılan işlemleri kontrol eden kod var bu kod yapılan işlemi kaydetmeden çıkmaya kalkınca ve ya kaydet butonuna basınca uyarıyor mukerrer kayıtlarda da bu kodların calısmasını istiyorum yardımcı olursanız sevinirim.
aslında bir formda kaydetme- silme- yeni kayıt- değiştirme- mukerrer kayıt gibi durumları kontrol eden kullanıcının yapması muhtemel hatalar ve davranışlar goz onunde bulundurularak hazırlanmıs ornekler olsa cok daha ıyı olabılır pek cok Access ornegınde bu durumlarda kontrol yok yada yetersiz.bu konuyada bılen bırılerı yardımcı olursa onada sımdıden tesekkurler
kolay gelsin , saglıcakla kalın
Genellikle me.undo komutuyla yapılan mükerrer kayıt kontrolünde setfocus işlemi bahsettiğiniz şekilde, yetersiz kalıyor gibi görünür. Ben genel ıolarak bunun nedenini şöyle açıklayayım:
Eğer kodu güncelleme sonrasına ya da çıkıldığında olayına yazarsanız, eylem oradan çıkıldığında çalışacağı için iş görmemektedir. Ben bunun için setfocus komutunu daha çok sonraki sekmede kullanırım. Diyelim ADISOYADI alanından sonra ADRESI alanına gidilecek, eğer kontrolu ADISOYADI'nın çıkışına yazarsanız setfocus çalışmıyor ama ADRESI alanına girişte tekrar kontrol ettirip buradan setfocus kullanırsanız o zaman çalışıyor. Bu benim bir tesbitim. Deneyin bakın. Bazı durumlarda böyle çözüm bulabiliyorum.
Bir çok
Access örneğinde bu tür kontrollerin zayıf olması, daha çok amatörce çalışmalarda tercih edilen
Access uygulaması için normal bir durumdur. Bunu mesela bir Oracle ya da
Sql örneğinde tabii göremezsiniz çünkü bu dillerle yazılım geliştirenler artık bazı şeyleri aşmış durumdadır. Halbuki yazılımcıların altın kuralları vardır, bunları uygulayan accessci ya da delphici farketmez. Mesela bir düğme koydunuz, düğme için bir kod yazdınız, evet mi hayır mı diye sordunuz, eveti hesapladınız ama hayır durumunu düşünmediniz. İşte burası bir hatadır. Bunun accessle ya da başka bir dille ilgisi yoktur yani..Her ddurumum düşünmek ve olabilecek tüm komplikasyonları hesaplamak lazımdır.
sayın mehmetdemiral,
dediklerinizi denedim gerçektende mükerer kayıt kontrolünü şube adı metin kutusunun güncelleştirme sonrasında değilde bir sonraki liste kutusunun odaklandığında olayında kullanınca setfocus çalıştı undo komutunu kaldırdım. bu durumun bir avantajıda oluşan döngü mükerrer kayıt düzeltilinceye kadar metin kutusundan çıkmak mümkün değil.tabi düşünülmemiş bir kontrol bu durumu değiştirebilir
iyi çalışmalar
Uyarılarımı gözönüne aldığınız için teşekkür ederim. Aslında dersler bölümünde bahsettiğiniz konularla ilgili ders örneklerimiz var. Bence bir inceleyiniz.