Merhaba
Farklı bir örnekten yaralandığım yetkilendirme ve şifreli giriş örneğini kendi uygulamamda kullanmak istiyorum.
Bir kaç değişiklik yapmaya çalıştım ama bir türlü beceremedim.örnekte var olan 3 çeşit yetki gruplarında benim belirleyeceğim yetkiye göre ana form üzerinde ki
formlarda işlem yapmalarını istiyorum. örneğin "yetkisiz" kullanıcı programa giriş yaptığı zaman
"ana formda" var olan "Yönetim paneli" formunu açamasın. açmaya çalıştığı zaman "bu formu açmaya yetkiniz yok" şeklinde uyarı vermesini istiyorum. "yönetici" tüm işlemleri yapabilsin.
"kullanıcı" ise yönetim paneli ile yine Ana Formda olan "Form1" formunu açamasın. Sitede arama yaptım fakat bu istediklerimi karsılayan ve kullanıcı adının girilidiği yerin metin kutusu( kullanıcı adının giriş yapıldığı yer açılan kutu olmayacak) olan bir örnek bulamadım.
ekte göndermiş olduğum örneğe böyle bir ekleme yapabilirmiyiz.
yardımcı olablirseniz çok mutlu olacağım.örneği ekliyorum
kolay gelsin
Sanırım bu konuda benim de önerilerim vardı, onları da okumuşsunuzdur. Ancak sizin istediğiniz daha farklı bir şey. Ben düğmelerin görünürlülüğü üzerinde değişklikler yapan if...then çalışması yapmıştım. Siz de aynı şekilde ana menüde yetki ile ilgili bazı şeyler yapmaya çalışmışsınız.
Burada daha farklı bir önerim olacak size. Bir sub hazırlayın ve yetkiye göre yapılacak davranışları tanımlayın. Mesela yetki= 1 ise bir sınırlama olmasın, yetki=2 ve 3 ise msgbox ile "Yetkili değilsiniz üzgünüm" gibi bir uyarı versin ve end sub ile de işlemi sonlandırsın. Bu ne işe yarayacak derseniz, menüdeki her tuşa basma işlemini bu alt sub'a yönlendirip yetkiye göre kodlar işletilecek. Mesela ana formdaki son butona basıldığında :
DoCmd.OpenForm "Frm_YeniKullanici"
kodu yerine önce alt suba dallanıp yetki sorgulanacak. O anda bir global değişkene atanmış yetki değerine bakılarak (ki bunun adının "yetki" olduğunu varsaymıştık) buna göre ya diğer koda geçilecek ve DoCmd.OpenForm "Frm_YeniKullanici"
komutu çalışacak ya da yetki sub'ında yer alan msgbox görüntülenerek özür dilenecek.
Gelelim global ya da public değişken olayına. Bunu 2 şekilde yapabilirsiniz. Kolay olanı girişteki kullanmıcı adı ve şifreye bakılarak tablodaki "yetki" değeri çağrılıp, bu formda kapatma işlemi yapıldığı anda açılan ana formda gizli bir metin kutusuna aktarılacak. Böylece "yetki" değeri elimizin altında olacak. Diğer yol ise bir modül içine yazılan public veya global değişken lazım olduğunda "yetki gel oğlum kuçu kuçu" diyerek çağrılacak. Seçim sizin.
Ha derseniz ki, be adam bu kadar şeyi anlatana kadar yapsaydın, benim amacım öğretmek derim. Ben bir öğretmenim, uygulayıcı değil. Her soruda örnekler hazırlayarak Access'ten soğumaya başladığımı farkettim. Artık fikir üreterek daha yararlı olunacağını düşünüyorum. Bu yöntemle bir sürü uzman yetiştirdik bu sitede. Siz de neden onlardan biri olmayasınız ki?
sn Mehmet Hocam keyifli anlatımınız için çok teşekkür ederim. bu konu ile ilgili bir örnek verebilirmisiniz.
Bununla ilgili bildiğim bir örnek yok ama bu akşam evde otururken size bir örnek hazırlarım. Bu bir fikir, ama mutlaka bir başka programcı uygulamıştır. Ancak bildiğim bir örneği yok. Bu akşam olacak inşallah
)
Merakla bekliyorum hocam.şimdiden çok teşekkür ederim
Size bahsettiğim çalışmayı ekliyorum. Bu arada tabii herşey tasarlanan kadar birebir aynı olmuyor. Ayrıntılardan bahsedeyim biraz.
* Öncelikle iki tür yetki atamak daha mantıklı. Birincisi yetkili, diğeri yetkisiz olursa daha kolay. Ben 2 tür üzerinden yaptım çünkü 3 olması durumunda kodlar bayaa değişecektir.
*Sizin çalışmanız üzerinde yaptım. Girişteki şifre ekranında x x ile girdiğinizde 2 nolu yetki gelecek. Bu durumda giriş denildiğinde açılan ana formdaki hangi düğmeler sadece yetkili kullanıcılar dışındakilere kapalı olacaksa o düğmenin kodlarını yazarken önce "sor" deyip daha sonra sor sub'ından gelen "iptal" değişkeninin aldığı değere göre çalışma veya çalışmaya karar verecektir. Yani yetkili kullanıcıya birşey demeden çalışacak ama yetkisiz kullanıcıya uyarı verecek ve işlem yapmayacaktır. Bu arada herkese açık olan düğmelerde bunu yapmayacağız. Örneği incelerseniz anlaşılacaktır. Siz inceleyip kendi isteğinize göre değişiklik yaparsınız. Kolay gelsin.
Bu arada kullanıcı: x şifre : x YETKİSİZ
kullanıcı :a şifre: a YETKİLİ