• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Yanlışlıkla Silmeye Karşı Uyarı

Katılım
27 Şubat 2007
Mesajlar
4
Excel Vers. ve Dili
Excel 2002
Merhaba sayın arkadaşlar.Ben bir program yaptım access te İnsan Kaynakları Programı.Benim sorum şu personelin özlük sicil kartları var ve yanlışlıkla bazen siciller arasında gezerken maus kayıyor veya yanlışlıkla elim klavyeye değiyor veri değişiyor veya siliniyor böyle bir durumda değişikliği uyarı olarak ekrana getirme olabilirmi acaba?
 
Tabi ki uyarı ile olmaz, her değişiklik yapmak istediğinizde uyarı gelir, ilerleyemezsiniz. Onun yerine işi biten kayıtları kilitleyin.
Formunuza (ve de tablosuna) bir onay kutusu (Evet/Hayır) ekleyin. Mesela "onay1"
Bu kutunun "tıklandığında olayına" aşağıdaki kodu yazın:

IF onay1=0 Then
Me![alanadı1].Enabled=True
Me![alanadı2].Enabled=True
.
.
.
Else
Me![alanadı1].Enabled=False
Me![alanadı2].Enabled=False
.
.
.
End IF
End Sub

İşi biten kayıtların istenmeden değiştirilmemesi için bu kutuyu işaretlersiniz, değişiklik yapmak istediğiniz zaman kutuyu boşaltırsınız.
Not: Benzer bir soru (öğrenci notları veritabanı idi sanırım), başka bir üye tarafından, buna benzer bir çözümle yanıtlanmıştı.
 
Bence bazı formlarda özellikle de sürekli formlarda mousenin wheel yani tekerleğini de disable etmekte fayda var, bazen insanı gıcık edebiliyor..
 
Arkadaşlar bu çözümü bizzat deneyen var mı? Hem onay kutusuna hem de alanların bütün yordamlarında denedim herhangi bir tepki vermiyor, yani alan kilitlenmiyor. Çözümü bir örnekle ekleyebilir misiniz.
 
Tabi ki uyarı ile olmaz, her değişiklik yapmak istediğinizde uyarı gelir, ilerleyemezsiniz. Onun yerine işi biten kayıtları kilitleyin.
Formunuza (ve de tablosuna) bir onay kutusu (Evet/Hayır) ekleyin. Mesela "onay1"
Bu kutunun "tıklandığında olayına" aşağıdaki kodu yazın:

IF onay1=0 Then
Me![alanadı1].Enabled=True
Me![alanadı2].Enabled=True
.
.
.
Else
Me![alanadı1].Enabled=False
Me![alanadı2].Enabled=False
.
.
.
End IF
End Sub

İşi biten kayıtların istenmeden değiştirilmemesi için bu kutuyu işaretlersiniz, değişiklik yapmak istediğiniz zaman kutuyu boşaltırsınız.
Not: Benzer bir soru (öğrenci notları veritabanı idi sanırım), başka bir üye tarafından, buna benzer bir çözümle yanıtlanmıştı.

Dostum olmuyor örnek ile gösterebilirmisin acaba
 
Sayın SENDOĞAN,

Aşağıdaki kodlar sizin için yeterli olabilir.

Kod:
'****************** Code Start ******************
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim strMsg As String    
strMsg = "Veriler Değişti."    
strMsg = strMsg & "@Değişiklikleri kaydetmek ister misiniz??"    
strMsg = strMsg & "@Kayıt için Evet. İşlemi geri almak için Hayır."    
If MsgBox(strMsg, vbQuestion + vbYesNo, "Veri kaydedilsin mi??") = vbYes Then        
'do nothing    
Else       
 DoCmd.RunCommand acCmdUndo           
 End If
End Sub
'****************** Code End ******************
Ancak burada sıkıntılı bir durum oluşur veri kaydedtmek isterken. Bu yüzden bir onay kutusuyla bu kodları by pass edebilirsiniz
İyi çalışmalar:)
 
Sayın Modalı,
Bahsettiğiniz yeni kayıtlardaki by pass için ne yapılması gerektiğini anlayamadım, biraz daha açabilir misiniz?
 
Pardon, biraz geç oldu ama, aynı kodu formun güncelleştirildiğinde olayına da ekleyeceksiniz.
Basit örnek ektedir.
 
Geri
Üst