Kullanıcıya göre filtreleme

1 2
19/03/2009, 13:08

ebekkaya

Arkadaşlar,

Ekte yaptığım çalışmada ilk önce username seçiliyor (tüm şifreler 1) ve bu seçilen username bilgisini başka bir formda kullanmak istiyorum. Öğrendiğim kadarıyla Module içinde Global olarak tanıtığım zaman bunu diğer formlarda kullabiliyorum. Fakat ekteki örnekte yeni formumda önceden seçmiş olduğum kullanıcı bilgisine göre bir türlü filtreleme yaptıramıyorum.

Konu ile ilgili yardımlarınızı rica ederim.
Saygılar
19/03/2009, 13:31

okileturc

Sn ebekkaya,
Farklı yöntemler önerilebilir ;
Ben şöyle yapıyorum, Kullanıcı bilgileri
içeren bir form hazırlıyorum. Kullanıcı
Enter - Giriş yaptıktan sonra tüm denetimlerin
doğru olması halinde form üzerindeki
bilgileri kriter kullanarak bahsettiğim formu
"Hidden -gizli" olarak açıyorum. Kullanıcı
Log Off olana kadar bu form arka planda
kalıyor.
Böylece farklı eylemlerde ( baze kullanıcı kontrolü,
bazen yetki kontrolü, bazen süzme kriteri , kayıt ekleyebilir,
düzenleyebilir, silebilir kriterleri vb )
bu gizli formdan bilgi alıyorum
Selamlar
19/03/2009, 14:04

tdsharun

Bir istek üzerine yaptığım bir programı gönderiyorum size. Uygulamada bu dediğiniz yöntemi bulabilirsiniz.

Bazı noktaların altını çizmek isterim:

1) Username bilgisini daha sonra da kullanabilmeniz için giriş yapan kullanıcı adını bir yere kaydettirmeniz lazım. Bunun için en uygun yöntem de log kaydı tutmaktır.

2) Bahsettiğiniz gibi modül oluşturduğunuzda formların tümünü kapsayan sınırlamalar koyabilirsiniz. Örneğin, düzenleme, ekleme, silme yasağı gibi...

Örneğimde bu istediklerinizin tamamı mevcut...

Örneği dikkatle inceleyecek olursanız istediğiniz ile bire bir örtüştüğünü göreceksiniz...

Kullanıcı Adı: TDSHARUN
Şifre: TDSHARUN

Kullanıcı Adı: KULLANICI
Şifre: KULLANICI

Kolay gelsin...
19/03/2009, 14:24

mehmetdemiral

Ben de global değişken kullanıyorum. Ama siz kurguda hata yapmışsınız sanırım. Şöyle ki; kullanıcı adı seçildiğinde kullanıcı adının, şifrenin ve yetki değerinin de bir değişkene atanması lazım. Bir sonraki aşamada da case select kullanın. Bir accesslist'iniz var zaten. Orada kime hangi yetkiyi verdiğinizi de belirtmişsiniz. Artık gerisi çocuk oyuncağı. Kurguyu böyle kurarsanız sorun çıkmayacaktır.

Bu arada kullanıcı adını seçtiğiniz açılan kutu 2 sütun, şifre gizlenmiş ama bu bilgiyi hiç değerlendirmemişsiniz. Belki gözünüzden kaçtı, şöyle kullanabilirsiniz ve bu eylemden sonra şifreyi kontrol etmek daha kolaydır.

Kod:
acilan_kutu.column(0)

bu şekilde, açılan kutudan seçilen kullanıcı adının karşılığı olan yetkiyi ve şifreyi (hangi column'da ise) değişkene atabilirsiniz. İşi daha da kolaylaştırıp açılan kutuyu 3 sütun yapı. Birinci sütun kullanıcı adı, 2.nci sütun şifre ve 3.ncü sütun da yetki olursa, kullanıcı bir ad seçtiğinde değişkenlere hemen bu değerler atanır. Bunu, açılan kutunun değiştiğinde olayına yazarsanız şöyle oluyor:

Kod:
kullaniciadi_degiskeni= acilankutu.column(0)
kullanicisifre_degiskeni= acilankutu.column(1)
kullaniciyetkisi_degiskeni= acilankutu.column(2)

Global olarak tanımladığınız ve modüle yazdığınız 3 deişken böylece değerlere kavuşmuş oldu. Şimdi form üzerindeki şifre yazılan kutuya girilen değeri kontrol edelim:

Kod:
if me.sifre_metinkutusu = kullanicisifre_degiskeni then formdaki_buton.enabled = true

Böylece basılacak buton aktif edildi. (Bu butonun baştan pasif olması gerekir. Yoksa else ile aksi durumu belitmek ve end if ile olayı bitirmek lazım.) Bu arada basılacak buton için de açılacak formun yetkisi yetki değişkeniyle aynı mantıkla seçilir. Özellikle bu aşamada case select kullanabilirsiniz:

Kod:
Select Case kullaniciyetki_degiskeni
Case "admin"
DoCmd.OpenForm "FRM_ANA", acNormal
Case "USER"
DoCmd.OpenForm "FRM_YETKISIZ", acNormal
Case "MISAFIR"
DoCmd.OpenForm "FRM_MISAFIR", acNormal
.
.
.
.
end select


Sanırım mantığı anladınız. Butonunuz bukalemun gibi, yetkiye göre değişen formları açacak. Aslında çok kolay. Bir deneyin, takıldığınız yerde yardım ederiz.


Kolay gelsin.
19/03/2009, 14:52

ebekkaya

Arkadaşlar süpersiniz, anında görüntü diye ben buna derim. Uygun gördüğünüz çözümler için uygulamalara başlıyorum.
Saygılar, sevgiler......
Mehmet Bey aslında sizin dediğiniz değişikene atama yöntemi aşağıdaki gibi uygulamıştım.
VUserName = UserName.Column(0)
Aslında ikinci formda bu değeride görüyorum fakat asıl sorunum olan filter bölümüne uygulayamıyorum. Çalışmada MsgBox ile giden ve gelen bilgiyi gösterdim. VUserName gidiyo ve geliyor. Bu kapsamda nasıl filtreleme yapacağımı dosya üzerinde gösterirseniz memnun olacağım.

Saygılar
19/03/2009, 23:00

ebekkaya

Arkadaşlar teşekkürler, bir şekilde "okileturc" un yöntemiyle çözdüm.
saygılar
1 2