18-09-2009, 03:45
Merhaba..
Hazırladığım bu örneğin çalışma prensibini bir senaryo ile anlatmak sanırım daha açıklayıcı olur..:
Diyelim ki çalıştığımız mağaza için bir uygulama yaptık ve bu uygulamayı diğer personel arkadaşlarımızla beraber kullanacağız.. Fakat sorun şu ki, bu kapsamlı uygulamamızda herkesin her formu açıp her işlemi yapmasını istemiyoruz.. Buna göre bir izin ve erişebilirlik düzeni hazırlamamız lazım..
Şimdi bunu Access’in kendi seçenekleri dışında kendimiz uygulamamız üzerinden yapalım..
Uygulamayı biz Yönetici yetkisi ile kullanacağız..
Mağazamızda Kasiyer olarak görevli Gamze için Yönetici Kontrol Panelimizi açıp önce Kullanıcı Grupları kısmından Kasiyer adı ile bir grup oluşturalım sonra Kullanıcılar kısmından Gamze’nin kaydını yapalım..
Daha sonra uygulamamızı kullanacak diğer kişiler için de ayrı ayrı Kullanıcı Grupları oluşturup kayıtlarını yapalım..
Gruplarımız şu şekilde oluşturalım..:
Yönetici, Kasiyer, Depocu, Muhasebe, Ziyaretçi..
İlave olarak, grupları oluştururken formların zemin rengini de her gruba göre farklı bir renk belirleyebiliyoruz..
Tüm bu grupların kullanıcı kayıtlarını yaptıktan sonra uygulamamızı nasıl kullanacaklarını şekillendirelim..
Yönetici, tüm uygulama üzerinde her işlemi yapma hakkına sahip olacak..
Kasiyer, kayıt ekleyebilmeli, görüntüleyebilmeli, ama mevcut kayıtlar üzerinde silme ve düzenleme yapamamalı..
Depocu da aynı Kasiyer yetkisine sahip olmalı.. (Kasiyer ile yetkisi aynı ise neden ayrı grup oluşturduk birazdan belli olacak) Yani tüm formlara sadece yeni kayıt ekleyebilsin..
Muhasebe grubuna kayıt girişi ve düzenleme izni verelim ama kayıtları silemesin..
Ziyaretçi ise uygulamayı sadece görüntüleyebilsin.. Başka hiçbir şey yapamasın..
Şimdi Kontrol Panelimizden Nesne - Grup İzinleri kısmına gidip Grup İzinlerinin haricinde yukarıda belirlediğimiz izin ve yetkileri oluşturalım..
Evet, artık gruplarımıza bağlı kullanıcılar bu izinlere göre formları görüntüleyip; kayıt ekleme, kayıt düzenleme veya kayıt silme işlemlerini yapabilecekler..
Ama biz şunları da istiyoruz;
- Kasiyer Gamze sadece Satış formundan kayıt yapabilsin, Alış formunu göremesin bile..
- Depocu Mustafa da sadece Alış formunu görsün.. Ama Mustafa Satış formunu göremesin.
- Mustafa (Depocu) ve Gamze (Kasiyer) Durum formunu görebilsinler fakat (hatırlatalım; iki grup da normalde aynı izinlere sahip) Gamze bu formdan kayıt yapabilsin ama Mustafa yapamasın.
- Muhasebeci Kamil tüm formları görebilsin ve grubundaki izinlere göre işlem yapabilsin. Ama Satış formundaki kayıtları düzenleyemesin..
- Yönetici haricindeki gruplar Yönetim Kontrol Paneli formunu göremesinler..
Nesne - Grup İzinleri kısmından yukarıdaki izinleri oluşturalım şimdi..
Hazırladığım bu uygulama ile bunun gibi daha bir çok izin tanımlaması yapabilirsiniz.. Form ve Rapor isimleri kendiliğinden gelmektedir, ayrıca girmeyeceksiniz.. Ayrıca dilediğiniz kadar kullanıcı ve grup ekleyebilirsiniz.. Grup isimleri örnek için verilmiştir, istediğiniz ismi atayabilirsiniz.. Her grup için yedi ayrı renkten birini seçerek form zeminlerini o grubun oturumuna göre renklendirebilirsiniz.. Tüm bunları ve daha fazlasını Yönetici Kontrol Paneli olarak tanımlağımız tek bir form üzerinden yapabilmekte işin güzel kısmı.. Bu forma ilaveler yaparak daha farklı işlemler içinde düğmeler yerleştirilebilir.. (Yedekleme, aktarma vb.)
Son olarak, form ve raporlarınızın yetkilendirmelere göre açılması için Açıldığında Olay Yordamına
Visual Basic
- Call Yetkiler(Form)
yazmayı unutmayınız..
Ekteki uygulamada yukarıdaki senaryoya göre gruplar ve kullanıcılar oluşturulmuş haldedir.. Her kullanıcı için giriş şifresi kullanıcı isminin ilk harfidir..
Not: Üyelerimizin isteklerine göre değiştirilmiş çeşitli versiyonlarını (alt formda yetkilendirme, textbox ile kullanıcı adı girişi vb. ) konu içerisindeki mesajlarda bulabilirsiniz..
Alıntı: 27-Haziran-2011 Tarihli Güncelleme
Bu tarihte,
Bu yapıyı güncelleme öncesinde uygulamalarında kullananlar,
- Kullanıcıların rapor yazdırma yetkilerini yönetmek için ilave özellik eklendi..
- Bu özelliği kullanabilmek için raporlarınız bu kod ile yazdırmak yeterlidir..:
Kod:Call RaporYazdirma("Rapor_Adi")
- Rapor görüntüleme yetkisi daha önce hazırlanmış ve araçta bulunan bir özelliktir, bununla karıştırmayınız..
- Tbl_Nesne_Izinleri tablosuna eklenen yazdırabilir isimli alanı uygulamanızdaki aynı tabloya kopyala / Yapıştır yöntemi le alınız..
- Tbl_Yetki tablosuna eklenen yazdırabilir isimli alanı uygulamanızdaki aynı tabloya kopyala / Yapıştır yöntemi le alınız..
- Yetki modülü içerisine bu fonksiyonu yapıştırınız..:
Kod:'Rapor Yazdırma İzni
Public Function RaporYazdirma(rprY As String)
Dim kllncY As String, raporadiY As String
raporadiY = rprY
kllncY = AktifKullaniciYetkisi
On Error Resume Next
Dim RgormeY As Double
RgormeY = DLookup("yazdirabilir", "Tbl_Nesne_Izinleri", _
"nesne = '" & raporadiY & _
"' AND grup = " & kllncY)
If RgormeY = -1 Then
MsgBox "Bu raporu yazdırma yetkiniz yok! ", , "Taruz 2011"
Else
DoCmd.OpenReport raporadiY
End If
End Function- Raporlarınızı bu kod ile yazdırınız..
Kod:Call RaporYazdirma("Rapor_Adi")
Alıntı: 19-Şubat-2011 Tarihli Güncelleme
Bu tarihte,
Bu yapıyı güncelleme öncesinde uygulamalarında kullananlar,
- Kullanıcıların aktif ve pasif olma durumuna göre giriş yapabilmesi için ilave özellik eklendi..
- Pasif kullanıcının (Örnekte Nuri ) giriş yaptıktan sonra sistem yöneticisine başvurması bilgisini veren ileti verilmesi ve uygulamanın kapatılması sağlandı..
- Tbl_Kullanici tablosuna bu işlem için yeni bir alan eklendi..
- Frm_Kullanici_Giris formuna bu şartlara göre kod ilavesi yapıldı..
- Bu yeni alanı Tbl_Kullanici tablosuna kopyala yapıştır yöntemi ile alınız..
- Frm_Kullanici_Giris formunu yenisi ile değiştiriniz..
- Frm_Kullanici_Giris formunu daha önce biçimlendirmiş olanlar aşağıdaki kod satırını bulup
Kod:DoCmd.Close
DoCmd.OpenForm "frm_ana"
bununla değiştiriniz..:
Kod:If kullanici.Column(5) = 0 Then
MsgBox "Kullanıcı yetkileriniz dondurulmuştur.. Lütfen sistem yöneticinizle görüşünüz..", vbCritical, "Taruz.."
Quit
Else
DoCmd.Close
DoCmd.OpenForm "frm_ana"
End If
- Aynı formdaki kullanici açılan kutusunu yenisi ile değiştiriniz..
- Admin Paneli formu, Kullanıcılar bölümünden kullanıcılarınızın Aktif-Pasif durumunu belirleyiniz..
Alıntı: 11-Mart-2010 Tarihli Güncelleme
Bu tarihte,
- Nesne izinlerini belirlerken, seçenekler arasında raporların da görüntülenmesi sağlandı..
- Kullanıcı Gruplarının raporları görüntüleme izinleri modüle bağlandı..
- Açılış ekranındaki hatalı şifre sayacı çalışmıyordu, düzeltildi..
Bu yapıyı güncelleme öncesinde uygulamalarında kullananlar,
- Yetki modülünü yenisi ile değiştiriniz..
- Raporların Görüntülenme yetkisi için, raporlarınızın Etkinleştiğinde olayına
Kod:Call YetkilerRapor(Report)
yazınız..
- Hatalı şifre sayacı için Frm_Kullanici_Giris formunun kod sayfasında Option Compare Database satırı altına
İlave ediniz..Kod:Option Explicit
Dim YanlisSifre As Integer
Alıntı: 27-Ekim-2009 Tarihli Güncelleme
Bu tarihte,
- Kullanıcıların Formlara Giriş ve Çıkış zamanlarının (Form adı ile beraber giriş - çıkış tarih ve saati) kaydedilmesi için yeni bir tablo ilave edildi..
- Yetki modulü bu yapıya göre düzenlendi..
- Yönetici Kontrol Paneli formuna bu kayıtların listelenmesi için düğme ilave edildi..
Bu yapıyı güncelleme öncesinde uygulamalarında kullananlar,
- Bu yeni tabloyu uygulamanıza alınız..
- Yetki modülünü yenisi ile değiştiriniz..
- Frm_Admin_Panel isimli formu yenisi ile değiştiriniz.. (Opsiyonel)
- Çıkışların kaydı için, formlarınızı Kapandığında olayına
Kod:Call Cikis(Form)
yazınız..
- Açıldığında olayında bir değişiklik yok.. Yani,
Kod:Call Yetkiler(Form)
yazılı kalacak..
Güncellenmiş yeni versiyonu için tıklayınız.. Gelişmiş Kullanıcı ve Grup Yetkilendirme
Bulunamayan yerleri bulmak için önce kaybolmak gerekir.
SORU SORMA KILAVUZU
Giriş | Sormadan Önce | İlgili Forumu dikkatlice seçin | Anlamlı ve duruma uygun konu başlıkları kullanın | Anlamsız soru cümleleri kurmayın | Açık, dilbilgisi kurallarına uygun ve sözdizimlerine dikkate ederek yazın | Sorunuz sizin için çok acil olsa bile, çok acil diye yazmayın | Sorununuz hakkında tam ve aydınlatıcı iletiler yazın | Amacınızı belirtin | Problemin belirtilerini tanımlayın, kendi tahminlerinizi değil | Sorunuz hakkında açık olun | Nezaket asla yaralamaz ve bazen oldukça yararlıdır | Boyut her şey değildir! | Kabalıkla ilgilenmek | Cevabı E-Posta ile istemeyin | İnsanlardan özel mesajla cevap vermelerini istemeyin | Eğer cevabı anlamadıysanız | Şayet bir cevap alamazsanız | Sorununuz çözüldükten sonra küçük bir not ile bildirin | Sorulmaması gereken türde sorular | İyi ve kötü sorular
Sorulara nasıl doğru düzgün cevap verilir
Kaptan Hector Barbossa
SORU SORMA KILAVUZU
Giriş | Sormadan Önce | İlgili Forumu dikkatlice seçin | Anlamlı ve duruma uygun konu başlıkları kullanın | Anlamsız soru cümleleri kurmayın | Açık, dilbilgisi kurallarına uygun ve sözdizimlerine dikkate ederek yazın | Sorunuz sizin için çok acil olsa bile, çok acil diye yazmayın | Sorununuz hakkında tam ve aydınlatıcı iletiler yazın | Amacınızı belirtin | Problemin belirtilerini tanımlayın, kendi tahminlerinizi değil | Sorunuz hakkında açık olun | Nezaket asla yaralamaz ve bazen oldukça yararlıdır | Boyut her şey değildir! | Kabalıkla ilgilenmek | Cevabı E-Posta ile istemeyin | İnsanlardan özel mesajla cevap vermelerini istemeyin | Eğer cevabı anlamadıysanız | Şayet bir cevap alamazsanız | Sorununuz çözüldükten sonra küçük bir not ile bildirin | Sorulmaması gereken türde sorular | İyi ve kötü sorular
Sorulara nasıl doğru düzgün cevap verilir