03/12/2011, 15:05
cemilbakir
(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
Komutunu yerleştirdik. Böylece kullanıcı seçildiğinde şifre alanına otomatik geçilir.Me.sifre.SetFocus
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...