AccessTr.neT

Tam Versiyon: Yetkilendirme ve şifreleme
Şu anda arşiv modunu görüntülemektesiniz. Tam versiyonu görüntülemek için buraya tıklayınız.
(06/02/2010, 14:26)mehmetdemiral yazdı: [ -> ]ACEMİLER İÇİN UYGULAMALAR 1
KULLANICI ADI VE ŞİFRE FORMU. YETKİYE GÖRE AÇILAN FORM.

Arkadaşlar merhaba
Herkesin sürekli soru olarak sorduğu şu kullanıcı ve şifre girişli ve yetkiye göre açılan form uygulaması konusuna el atmak istedim. Bu konuda adım adım uygulaması yapıyoruz.

A)Birinci adımda tablomuzu tasarlayalım ve tabloya şu alanları açalım:
1-Kullanıcı id (Otomatik sayı)
2-Kullanıcı adı (Metin)
3-Şifre (metin)
4-Yetki (Metin)

B)Tablomuza bağlı bir form yapalım ve formda şu alanlar olsun.
1-Kullanıcı adı (Açılan kutu)
2-Şifre (Maskelenmiş metin kutusu)

C)Şimdi formumuzu tablomuza bağlıyoruz ve alanlarımızı zevkimize göre yerleştiriyoruz. Bu arada açılan kutu alanının özelliklerinden sütun sayısını 4 olarak belirleyelim ve tablomuzdaki tüm alanları 4 sütun olarak ekleyelim. Görüntü olarak sadece kullanıcı adının görünmesi için birinci sütun olan id, üçüncü sütun olan şifre ve dördüncü sütun olan yetki alanlarının cm. olarak boyutları 0 cm olmalıdır.

NOT: Kullanıcı adları için ve yetki tanımları için başka bir form yapılmasını burada anlatmıyorum.

D)Şimdi formumuzu açalım. Kullanıcı adını seçtiğimizde hemen şifre alanına odaklanması için, kullanıcı adı alanının güncelleme sonrasında olayına
Me.sifre.SetFocus
Komutunu yerleştirdik. Böylece kullanıcı seçildiğinde şifre alanına otomatik geçilir.

E)Bu arada bir kullanıcının şifresi yazılıp daha sonra kullanıcı adı tekrar değiştirildiğinde şifrenin silinmesi için kullanıcı adı alanına girildiğinde şu komut çalışmalı:
Me.sifre = ""

F)Formumuz üzerine bir buton koyalım. Adı Giris olsun. Bu buton normalde pasif olmalı. Bunun için buton veri sekmesindeki etkin özelliği “hayır” olarak ayarlandı. Böylece açıldığında butonumuz pasif olacak.

G)Şifre yazılacak metin kutusunun veri özelliklerinden giriş maskesine “password” yazalım ki alan şifre alanı olarak maskelensin.

H)Şifre metin kutusunun güncelleştirme sonrasında olayına şu kodları yazalım:
If Me.sifre = Me.kullanici.Column(2) Then
Me.giris.Enabled = True
Else
Me.giris.Enabled = False
End If

Adım adım açalım.
If Me.sifre = Me.kullanici.Column(2) Then
'(Eğer şifre, kullanıcı açılan kutusundaki 2 nolu sütun ile aynı olursa)
Me.giris.Enabled = True
'(Giris isimli buton aktif olsun)
Else
(değilse)
Me.giris.Enabled = False
'(Giris butonu pasif olsun)
End if
'(if eylemi bitti)

Bu arada şifre alanından çıkıldığında olayına da şu kodları yazalım

If Me.sifre <> Me.kullanici.Column(2) Then
Me.Çerçeve42.SetFocus
Me.sifre.SetFocus
End If

Adım adım açalım:
If Me.sifre <> Me.kullanici.Column(2) Then
'(Eğer sifre, kullanıcı açılan kutusunun 2.nci kolonundaki değerle aynı değilse)
Me.Çerçeve42.SetFocus
'(Form üzerinde bulunan çerçeve42’ye odaklan)
Me.sifre.SetFocus
'(Form üzerindeki sifre alanına odaklan)
End If
'(if eylemi bitti)

Bu arada dikkat edildiyse çerçeve42 alanı var. Bu alan sadece odağı değiştirmek için konuldu. Mümkün olduğunda küçülterek minik bir nokta haline getirmek veya formun kenarına süs olarak koymak sizin tercihiniz. Ama gizlemeyin, kod hata verir.

I)İşlem bu kadar. Ancak bu arada kullanıcıyı ve yetkisini programımızın bazı yerlerinde kullanmak için bir yerlere atayalım. Bunun için bir modül oluşturalım ve içine sadece şunları yazalım:
	Global kullaniciadiD, yetkiD as string

Buradaki büyük D harflerini Değişken olduklarını göstermek için koydum. Şart değil…

J)Şimdi artık programımızın giris adlı butonuna basabilir duruma geldik. Doğru şifreyi yazdıysak giris isimli buton görünür oldu ve butona bastık. Böylece mesela adı “FRM_ANA” olan bir formumuz açılsın ve oradan programımızın diğer işlevlerine ulaşılsın.
DoCmd.OpenForm “FRM_ANA”

Ama bu arada FRM_LOGON adını verdiğim giriş şifre formumuz da kapanmalı di mi?

DoCmd.Close acForm, "FRM_LOGON"

K) Bu arada bu kodların arkasına değişkenlerimize de değer atayalım:

kullaniciadiD= me.kullanici
yetkiD = me.kullanici.column(3)

Artık program içindeki nereden isterseniz oradan sadece KullaniciadiD ve yetkiD yazarak sisteme giren kullanıcı adını ve yetkisini öğrenebiliriz. Bu yetkiye göre de hangi butonları veya işlevleri kullandıracaksak ona göre ayarlamalar yaparız.
Bununla ilgili olarak örnek üzerinde bazı küçük uygulamalar yaptım. Ana form üzerindeki 3 buton user oturumunda pasif oluyor, etikette duruma göre mesaj veriliyor ve “Hoş geldin” şeklinde isimle hitap ediliyor. Bunlar basit yöntemler.. Çok daha karmaşık şeyler de yapılabilir. Ancak bu dersi daha çok yeni başlayanlara düşündüğüm için, basit tuttum.

Örnek çalışma da ektedir. Güle güle kullanın.




Bu konuyu açan ve bu kodları yazan arkadaşım size örneğimi göndersem bu örnekte sizin örnekteki gibi bir ayarlama nasıl yapabilirim. Ben yeniyim daha Access de o yüzden...
Ek Dosyalar
 hocaoğlu imalat1.rar(199.13 KB)
Konuda herşey adım adım anlatılmış, siz uğraşmayıp biz yaparsak siz nasıl öğreneceksiniz ??

Bence sadece takıldığnız yerleri sorun.
Beni tamamen yanlış anladınız ben uğraşmıyor değilim iki gündür sadece bu konu üzerinde duruyorum. Uğraşıyorum.. Ama ben kod yazmasını bilmiyorum... keşke bilsem öğrensem anlatılan gibi kodları yerlerine yazıyorum ama olmuyor uğraşlar sonucunda bunu size yazdım zaten
yine de teşekkürler
Anlatılan gibi giriş butonunu pasif ettim ve tıklanıldığında olay yordamını örnekteki gibi yazdım ama malesef kullanıcı adı ve şifreyi girince pasiflik devam ediyor aktif hale gelmiyor
Sanırım siz beni yanlış anladınız. Uğraşmıyorsunuz demedim, Access öğrenmeniz için uğraşmanız lazım dedim. Tabiki uğraşarak bir yere kadar.

Mehmet hocanın örneğindeki nesneleri sizin örneğinize ekledim,
kullanıcı tablosundaki verileri kendinize göre düzenleyin.
FRM_ANA isimli formdaki butonları, uygulamanızda açılacak formlara göre değiştirin. Buton sihirbazını kullanarak form açma butonu ekleyebilirsiniz.
Takıldığınız yer olursa sorunuz.

Ek Dosyalar
 hocaoğlu imalat1_ornek.rar(161.14 KB)



(03/12/2011, 16:00)cemilbakir yazdı: [ -> ]Anlatılan gibi giriş butonunu pasif ettim ve tıklanıldığında olay yordamını örnekteki gibi yazdım ama malesef kullanıcı adı ve şifreyi girince pasiflik devam ediyor aktif hale gelmiyor
açılan kutunun güncelleştirme sonrasında olayında

Private Sub kullanici_AfterUpdate()

Me.sifre.SetFocus

End Sub
kodu yazılı, ama siz uygulamanızda güncelleştirme sonrasında olayına direkt "sifre.SetFocus" yazmışsınız.

Yetkilendirme ve şifreleme işlemimi tamamladım teşekkürler