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?
 
Katılım
1 Haziran 2005
Mesajlar
22
Excel Vers. ve Dili
Pro 2016 Turkce
Altın Üyelik Bitiş Tarihi
14.06.2019
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ı.
 

beab05

Özel Üye
Katılım
19 Mart 2007
Mesajlar
1,418
Excel Vers. ve Dili
Office 2013
Bence bazı formlarda özellikle de sürekli formlarda mousenin wheel yani tekerleğini de disable etmekte fayda var, bazen insanı gıcık edebiliyor..
 
Katılım
7 Ekim 2005
Mesajlar
180
Excel Vers. ve Dili
2002 Pro, Türkçe
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.
 
Katılım
27 Şubat 2007
Mesajlar
4
Excel Vers. ve Dili
Excel 2002
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
 
Katılım
25 Aralık 2005
Mesajlar
4,160
Excel Vers. ve Dili
MS Office 2010 Pro Türkçe
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:)
 
Katılım
16 Şubat 2007
Mesajlar
323
Excel Vers. ve Dili
office 2003 prof.tr
Sayın Modalı,
Bahsettiğiniz yeni kayıtlardaki by pass için ne yapılması gerektiğini anlayamadım, biraz daha açabilir misiniz?
 
Katılım
1 Haziran 2005
Mesajlar
22
Excel Vers. ve Dili
Pro 2016 Turkce
Altın Üyelik Bitiş Tarihi
14.06.2019
Pardon, biraz geç oldu ama, aynı kodu formun güncelleştirildiğinde olayına da ekleyeceksiniz.
Basit örnek ektedir.
 
Üst