Skip to main content

AccessTr.neT


access klavye delete tuşuna erişimi yasaklama

access klavye delete tuşuna erişimi yasaklama

#7
Celosoft benim İmzam Img-grin))))

Aşagıdaki kodu deneyin sanırım delete tuşunun karşılıgı=46


Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 46 Then
MsgBox ("Silme yapamazsınız...")
End If
end sub
Cevapla
#8
(03/08/2015, 13:41)C*e*l*o*y*c*e yazdı: Celosoft  benim İmzam Img-grin))))

Aşagıdaki kodu deneyin sanırım delete tuşunun karşılıgı=46


Private Sub Form_KeyPress(KeyAscii As Integer)
If KeyAscii = 46 Then
MsgBox ("Silme yapamazsınız...")
End If
end sub
Merhaba,
bu komut işlem yapmadı. deneyerek örnek dosyaya ekleyebilir misiniz.
teşekkürler...
.zip FormDeleteTusu.zip (Dosya Boyutu: 45,11 KB | İndirme Sayısı: 6)
Cevapla
#9
Sayın ssdestek,

Öncelikle,bir hususu belirterek bir yorumda bulunmak yerinde olacaktır kanısındayım.

Alıntı:Form üzerine bir kutu oluşturdum KAYIT SİL şeklinde. buna basınca seçili kaydı siliyor. Problemim:
Kullanıcı maus ile çoklu kayıt seçebilir ve klavyeden yanlışlıkla DELETE tuşuna basarak tüm kayıtları uçurabilir.

ifadenize yönelik olarak;hem kullanıcılar için uygulamada kullansınlar diye kayıt silme işlemi oluşturduğunuzu hem de bu işlemi uygulamalarına engel olmak istediğinizi  beyan ediyorsunuz.burada,aslında tam olarak ne yapmak istediğinize karar vermeniz gerektiği önem taşıyor.herhangi bir ya da çoklu kaydı silme imkanı tanımak mı yoksa evet kayıt silme hakları var fakat kontrollü bir hak tanıma mı olmalı?

Elbette ki,amacınız;kontrollü silme hakkı tanımak.o zaman,bunun için çeşitli alternatif yöntemleri kendinize seçenek olarak belirleyip uygun gördüğünüzü oluşturmak sureti ile bu kayıt silme işlemini kontrollü duruma getirmek gerekmektedir.bunun için şu yöntemi uygulamayı deneyebilirsiniz.

SİLME İZNİ YÖNTEMİ
İster formun Yüklendiğinde olay yordamı içerisine

Kod:
Me.AllowDeletions = False
kod ifadesini yazmak sureti ile;ya da isterseniz de,formu tasarım olarak açtıktan sonra ÖZELLİKLER-VERİ sekmesindeki SİLME İZNİ satırını HAYIR olarak işaretleyip kaydetmek sureti ile,form üzerinde herhangi bir zamanda direkt DELETE tuşuna basarak kayıt silme işlemini etkisiz (geçersiz) kılabilirsiniz.

Yukarıdaki işlemleri uyguladığınız takdirde,formu çalıştırıp DELETE tuşuna bastığınızda,formun sol alt köşesinde status bar üzerinde BU FORMLA KAYITLAR SİLİNEMEZ uyarı yazısının belirdiğini göreceksinizdir.

Kayıt silme işleminin etkin olmasını sağlamak ve kayıt silmek için yapılması gereken ise;form üzerindeki herhangi bir denetim (silme butonu gibi) ya da bir başka olay yordamında bu ilgili olay yordamının içinde ilk satıra

Kod:
Me.AllowDeletions = True
kod ifadesini eklemek sureti ile,kayıt silme işleminin gerçekleşmesini sağlayabilirsiniz.FALSE değerini kullanarak,tekrar etkisiz duruma getirmeyi de ihmal etmeyiniz.örnek vermek gerekirse;

1) Yukarıdaki işlemlerden birini uygulamak sureti ile kayıt silme işlevini etkisiz kıldığınız varsayılsın.
2) Form üzerinde,aşağıdaki kodları barındıracak şekilde bir silme butonu eklendiği de varsayılsın.

Kod:
Private Sub kayit_silme_btn_Click()
'KAYIT SİLME İZNİNİ ETKİNLEŞTİR
Me.AllowDeletions = True

'KAYIT SİLME İŞLEMLERİ...
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE FROM Tablo1 WHERE id=" & Me.Id
DoCmd.SetWarnings True

'FORMU GÜNCELLE VE TAZELE...
Me.Requery
Me.Refresh

'KAYIT SİLME İZNİNİ TEKRAR ETKİSİZLEŞTİR (DELETE TUŞUNU PASİFLEŞTİR)
Me.AllowDeletions = False
End Sub

Böylece,kod tanımlama açıklamalarından da anlaşılacağı üzere,kayıt silme izninin uygulanması sağlanmış oldu.

Son olarak,elbette ki,bu talebinize konusunda uygulanabilecek alternatif yöntemler de söz konusu olabilecektir.örneğin;kayıt kilitleme ve kilitlemenin aktifleştirilmesi ya da pasifleştirilmesi gibi,tuş kilitlemenin uygulanması gibi,..bilginize.

İyi çalışmalar,saygılar.
 
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
#10
Sayın ssdestek

Bir form üzerine sorguyu yerleştirince ve bütün komutları makrolarla yapınca bu dediğiniz işlemi yapmak biraz sıkıntılı olacaktır. Bu tür işlemlerde genelde sorguyu formun üzerine koymak yerine bir alt form koymak, denetleme bakımından daha mantıklı olacaktır.
İnadına, ille de Accesstr.net...
Cevapla
#11
sayın ssdestek,


konu takibiniz açısından,hatırlatma anlamında;
konunuz ile ilgili son gelişme ne durumdadır.

şüphesiz,işlemleriniz tamamlanmış ve sorununuzu çözmüş de olabilirsiniz.
site içi aramalarınız neticesinde sitede yer alan konuları ve örnekleri incelemelerinizin sonucu ile bazı gelişimler elde etmiş de olabilirsiniz...bilgilendirmek ister misiniz lütfen.teşekkürler.bilginize.

iyi çalışmalar,
saygılar.
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
#12
(06/08/2015, 13:44)atoz112 yazdı: Sayın ssdestek,

Öncelikle,bir hususu belirterek bir yorumda bulunmak yerinde olacaktır kanısındayım.


Alıntı:Form üzerine bir kutu oluşturdum KAYIT SİL şeklinde. buna basınca seçili kaydı siliyor. Problemim:
Kullanıcı maus ile çoklu kayıt seçebilir ve klavyeden yanlışlıkla DELETE tuşuna basarak tüm kayıtları uçurabilir.

ifadenize yönelik olarak;hem kullanıcılar için uygulamada kullansınlar diye kayıt silme işlemi oluşturduğunuzu hem de bu işlemi uygulamalarına engel olmak istediğinizi  beyan ediyorsunuz.burada,aslında tam olarak ne yapmak istediğinize karar vermeniz gerektiği önem taşıyor.herhangi bir ya da çoklu kaydı silme imkanı tanımak mı yoksa evet kayıt silme hakları var fakat kontrollü bir hak tanıma mı olmalı?

Elbette ki,amacınız;kontrollü silme hakkı tanımak.o zaman,bunun için çeşitli alternatif yöntemleri kendinize seçenek olarak belirleyip uygun gördüğünüzü oluşturmak sureti ile bu kayıt silme işlemini kontrollü duruma getirmek gerekmektedir.bunun için şu yöntemi uygulamayı deneyebilirsiniz.

SİLME İZNİ YÖNTEMİ
İster formun Yüklendiğinde olay yordamı içerisine


Kod:
Me.AllowDeletions = False
kod ifadesini yazmak sureti ile;ya da isterseniz de,formu tasarım olarak açtıktan sonra ÖZELLİKLER-VERİ sekmesindeki SİLME İZNİ satırını HAYIR olarak işaretleyip kaydetmek sureti ile,form üzerinde herhangi bir zamanda direkt DELETE tuşuna basarak kayıt silme işlemini etkisiz (geçersiz) kılabilirsiniz.

Yukarıdaki işlemleri uyguladığınız takdirde,formu çalıştırıp DELETE tuşuna bastığınızda,formun sol alt köşesinde status bar üzerinde BU FORMLA KAYITLAR SİLİNEMEZ uyarı yazısının belirdiğini göreceksinizdir.

Kayıt silme işleminin etkin olmasını sağlamak ve kayıt silmek için yapılması gereken ise;form üzerindeki herhangi bir denetim (silme butonu gibi) ya da bir başka olay yordamında bu ilgili olay yordamının içinde ilk satıra


Kod:
Me.AllowDeletions = True
kod ifadesini eklemek sureti ile,kayıt silme işleminin gerçekleşmesini sağlayabilirsiniz.FALSE değerini kullanarak,tekrar etkisiz duruma getirmeyi de ihmal etmeyiniz.örnek vermek gerekirse;

1) Yukarıdaki işlemlerden birini uygulamak sureti ile kayıt silme işlevini etkisiz kıldığınız varsayılsın.
2) Form üzerinde,aşağıdaki kodları barındıracak şekilde bir silme butonu eklendiği de varsayılsın.


Kod:
Private Sub kayit_silme_btn_Click()
'KAYIT SİLME İZNİNİ ETKİNLEŞTİR
Me.AllowDeletions = True

'KAYIT SİLME İŞLEMLERİ...
DoCmd.SetWarnings False
DoCmd.RunSQL "DELETE FROM Tablo1 WHERE id=" & Me.Id
DoCmd.SetWarnings True

'FORMU GÜNCELLE VE TAZELE...
Me.Requery
Me.Refresh

'KAYIT SİLME İZNİNİ TEKRAR ETKİSİZLEŞTİR (DELETE TUŞUNU PASİFLEŞTİR)
Me.AllowDeletions = False
End Sub

Böylece,kod tanımlama açıklamalarından da anlaşılacağı üzere,kayıt silme izninin uygulanması sağlanmış oldu.

Son olarak,elbette ki,bu talebinize konusunda uygulanabilecek alternatif yöntemler de söz konusu olabilecektir.örneğin;kayıt kilitleme ve kilitlemenin aktifleştirilmesi ya da pasifleştirilmesi gibi,tuş kilitlemenin uygulanması gibi,..bilginize.

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

Merhaba, bunu bir modül ile nasıl yapılır. Form açılır açılmaz DELETE pasif olsun.
Cevapla

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

Yorum yapmak için üye olmanız gerekiyor

ya da
Task