Denedinizmi dosyayı.Yetkilendirme için nasıl birşey istiyorsunuz.Access açılırken yetkili kişiye göremi açılsın.İşlemler exceldemi yspılacak duruma göre.Yani accessten verimi çekeceksiniz.
Tam bunları bilsek ona göre yazarız kodları sonuçta adminmi kullanıcımı olduğunu bulduk kodla.
(21/05/2020, 22:21)feraz yazdı: Denedinizmi dosyayı.Yetkilendirme için nasıl birşey istiyorsunuz.Access açılırken yetkili kişiye göremi açılsın.İşlemler exceldemi yspılacak duruma göre.Yani accessten verimi çekeceksiniz.
Tam bunları bilsek ona göre yazarız kodları sonuçta adminmi kullanıcımı olduğunu bulduk kodla.
feraz hocam Login olduktan sonra ayrı bir anasayfa açılacak, ordaki bazı menüler admin seviyesinde, bazıları ise user seviyesinde çalışacak. Sizleri yormayacaksa bir kaç konuda destek alabilirim.
Yardım edebilirim menü yada sayfalara exceldemi açılacak.
Alttaki gibi biraz daha değiştirdim kısaltabilirsem eklerim kod daha.
Sub Label2_Click()
Dim baglan As Object, rs As Object
Dim yetki As String, varmi As Boolean
Dim sorgu As String
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
varmi = False
baglan.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\Database.accdb;Persist Security Info=False;"
'--------------------------------------------------------------------------------------------------------------------------------------------------------
sorgu = "select * from [Users] where User_Name ='" & TextBox1.Value & "' and Password ='" & TextBox2.Value & "' and Role ='admin'"
rs.Open sorgu, baglan, 1, 1
If rs.RecordCount > 0 Then
yetki = "Admin"
varmi = True
GoTo 1
End If
'--------------------------------------------------------------------------------------------------------------------------------------------------------
rs.Close
sorgu = "select * from [Users] where User_Name ='" & TextBox1.Value & "' and Password ='" & TextBox2.Value & "' and Role ='user'"
rs.Open sorgu, baglan, 1, 1
If rs.RecordCount > 0 Then
yetki = "Kullanici"
varmi = True
End If
'--------------------------------------------------------------------------------------------------------------------------------------------------------
1
If varmi = True Then
MsgBox "Basarili ve " & yetki & " olarak acilacak", vbInformation
Else
MsgBox "sifre yada kullanici adi yanlis", vbCritical
End If
rs.Close
baglan.Close
Set rs = Nothing
Set baglan = Nothing
End Sub
Kodu biraz daha değiştirdim.
Dim varmi As Boolean
Bu kod en üste eklenecek.
Alttaki kodlarda userform içine.
Sub Admin()
MsgBox "Admin" 'Mesaj yerine admin icin gerekli kodlar yazilacak
End Sub
Sub user()
MsgBox "user" 'Mesaj yerine user icin gerekli kodlar yazilacak
End Sub
Function test(admin_User As String) As Boolean
Dim baglan As Object, rs As Object
Dim sorgu As String
varmi = False
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
baglan.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\Database.accdb;Persist Security Info=False;"
'--------------------------------------------------------------------------------------------------------------------------------------------------------
sorgu = "select * from [Users] where User_Name ='" & TextBox1.Value & "' and Password ='" & TextBox2.Value & "' and Role ='" & admin_User & "'"
rs.Open sorgu, baglan, 1, 1
If rs.RecordCount > 0 Then
varmi = True
If admin_User = "admin" Then
Call Admin: test = True
Else
Call user: test = True
End If
End If
rs.Close
baglan.Close
Set rs = Nothing
Set baglan = Nothing
End Function
Sub Label2_Click()
If test("admin") = True Then Exit Sub
If test("user") = True Then Exit Sub
If varmi = False Then MsgBox "Kullanici adi yada sifre yanlis..", vbCritical, "Hata"
End Sub
(22/05/2020, 00:25)feraz yazdı: Kodu biraz daha değiştirdim.
Dim varmi As Boolean
Bu kod en üste eklenecek.
Alttaki kodlarda userform içine.
Sub Admin()
MsgBox "Admin" 'Mesaj yerine admin icin gerekli kodlar yazilacak
End Sub
Sub user()
MsgBox "user" 'Mesaj yerine user icin gerekli kodlar yazilacak
End Sub
Function test(admin_User As String) As Boolean
Dim baglan As Object, rs As Object
Dim sorgu As String
varmi = False
Set baglan = CreateObject("adodb.connection")
Set rs = CreateObject("adodb.recordset")
baglan.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & ThisWorkbook.Path & "\Database.accdb;Persist Security Info=False;"
'--------------------------------------------------------------------------------------------------------------------------------------------------------
sorgu = "select * from [Users] where User_Name ='" & TextBox1.Value & "' and Password ='" & TextBox2.Value & "' and Role ='" & admin_User & "'"
rs.Open sorgu, baglan, 1, 1
If rs.RecordCount > 0 Then
varmi = True
If admin_User = "admin" Then
Call Admin: test = True
Else
Call user: test = True
End If
End If
rs.Close
baglan.Close
Set rs = Nothing
Set baglan = Nothing
End Function
Sub Label2_Click()
If test("admin") = True Then Exit Sub
If test("user") = True Then Exit Sub
If varmi = False Then MsgBox "Kullanici adi yada sifre yanlis..", vbCritical, "Hata"
End Sub
feraz hocam selamlar,
Bir kaç adım yol aldım gibi dama daha çok yolun başındayım.
Bunu kendim için yapıyorum kusursuza yakın olsun istiyorum. İşime uygun ofis yardımcısı olarak planlıyorum. Aynı zamanda bunu ofisimdeki diğer arkadaşlarımda kullanıcak deyip konuya gireyim.
Öncelikle örnek dosyamı ekledim,
Kullanıcı adı : admin
parola: admin
1- Hocam öncelikle login olduğunda anasayfada kullanıcı resmi gelsin. Kullanıcıya ait resim yoksa label94' e yazılı ismi klasörde bulsun getirsin.
2- Kullanıcı adı user olanlarda TBL_POLICE sayfasında değişik kısıtlamalar konulabilir örnek olacak şekilde (ben buton1 i iptal ettmim mesela)
3- Hatırlatma yapması için ajanda planlıyorum nasıl yaparım bilmiyorum. Örnek varsa sevinirim.
Eksiklerimi zamanla gidereceğim. Desteğini esirgemediğin için minnettarım.