Merhaba kullanıcı şifreli giriş ve yetkilendirmeyi yaptım, kullanıcı daha sonra kendi şifresini nasıl değiştirecek bunu nasıl yapabilirim
yardımcı olabilirmisiniz.
Teşekkürler.
Kullanıcının kendi şifresini daha sonra değiştirebilmesi
Örneğinizi ekleyin ya da;
Elinizdeki mevcut şifre giriş formunu kopyalayın. Fark olarak buna 3 tane metin kutusu koyun
1. Eski Şifre ( kullanıcının buraya mevcut şifresini yazması gerekli ki gerçekten o olduğunu bilelim)
2. Yeni Şifre
3. Yeni Şifre Tekrarı ( 2.si ile aynı olup olmadığını kontrol edeceğiz. Şifresini yanlış girmemesi için son kontrol)
Tamam dediğinde ;
1. Eski şifresini doğru yazmış mı? Farklıysa uyarı verin
2. Yeni şifre ve eski şifre aynı mı? Aynıysa uyarı verin.
3. Yeni şifre ve yeni şifre tekrarı aynı mı? Farklıysa uyarı verin
Yukarıdaki uyarılardan geçerse kullanıcı şifresini ado ile kaydedebilirsiniz.
strSQL = "SELECT * FROM kullanıcılar "
Set rstkayit = New ADODB.Recordset
rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With rstkayit
.Find "[kullanıcıid]=" & Me.kullanıcı.Column(1)
.Fields("sifre")=me.yenisifre
.Update
End With
Elinizdeki mevcut şifre giriş formunu kopyalayın. Fark olarak buna 3 tane metin kutusu koyun
1. Eski Şifre ( kullanıcının buraya mevcut şifresini yazması gerekli ki gerçekten o olduğunu bilelim)
2. Yeni Şifre
3. Yeni Şifre Tekrarı ( 2.si ile aynı olup olmadığını kontrol edeceğiz. Şifresini yanlış girmemesi için son kontrol)
Tamam dediğinde ;
1. Eski şifresini doğru yazmış mı? Farklıysa uyarı verin
2. Yeni şifre ve eski şifre aynı mı? Aynıysa uyarı verin.
3. Yeni şifre ve yeni şifre tekrarı aynı mı? Farklıysa uyarı verin
Yukarıdaki uyarılardan geçerse kullanıcı şifresini ado ile kaydedebilirsiniz.
strSQL = "SELECT * FROM kullanıcılar "
Set rstkayit = New ADODB.Recordset
rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With rstkayit
.Find "[kullanıcıid]=" & Me.kullanıcı.Column(1)
.Fields("sifre")=me.yenisifre
.Update
End With
meşhur çin atasözü "ACCESS İLE YAPABİLECEKLERİNİZ HAYAL EDEBİLECEKLERİNİZ İLE SINIRLIDIR" siz ne kadar hayal edebiliyorsunuz
Bu kadar düzgün türkçeyle yazılmış bir esrefigit cevabı için teşekkür ederiz
Bana işe yarayan bir müdür göster,sana dünyayı yerinden oynatayım.
Descartes
Descartes
teşekkür ederim
meşhur çin atasözü "ACCESS İLE YAPABİLECEKLERİNİZ HAYAL EDEBİLECEKLERİNİZ İLE SINIRLIDIR" siz ne kadar hayal edebiliyorsunuz
Çok teşekkürler, şifre sorğulamaları yaptım ama sadece yeni şifreyi tabloya update edecek komutları tam yaptıramadım, yardımcı olabilirmisiniz.
Sub YeniŞifreupdate()
Dim rstkayit As String
If Not IsNull(rstkayit![KULLANICIŞİFRESİ]) > 0 Then
Set rstkayit = CurrentDb.OpenRecordset("select * from KULLANICILAR where ID=" + str(Me.ID.Value) + " ;")
rstkayit.Edit
rstkayit![KULLANICIŞİFRESİ] = LCase$(strKULLANICIŞİFRESİ)
rstkayit.Update
rstkayit.Close
End If
End Sub
Private Sub Command5_Click()
If IsNull(Me.Kullanıcı) Or Me.Kullanıcı = "" Then
MsgBox "Lütfen Kullanıcı Adı Giriniz.", vbOKOnly + vbInformation, "Bilgilendirme Penceresi"
Me.Kullanıcı.SetFocus
Exit Sub
End If
If Me.Şifre.Value = Dlookup ("KULLANICIŞİFRESİ", "KULLANICILAR", "[ID]=" & Me.Kullanıcı.Value) Then
ID = Me.Kullanıcı.Value
YeniŞifretekrarı
Else
MsgBox "Hatalı Şifre! Lütfen Tekrar Deneyiniz", vbOKOnly + vbCritical, "Bilgilendirme Penceresi"
End If
intLogonAttempts = intLogonAttempts + 1
If intLogonAttempts > 3 Then
MsgBox "KAPATILACAK.", vbCritical, "Bilgilendirme Penceresi"
Application.Quit
End If
End Sub
Private Function YeniŞifretekrarı()
If [Yenişifre] = [Şifre] Then
MsgBox "Yenişifre ile Eskişifre Farklı olmalıdır"
DoCmd.GoToControl "Yenişifre"
Else
If IsNull([Yenişifre]) Or IsNull([Şifretekrarı]) Then
MsgBox "Yeni şifre ve Yeni şifre tekrarını girmelisiniz."
DoCmd.GoToControl "Yenişifre"
Else
If [Yenişifre] <> [Şifretekrarı] Then
MsgBox "Yenişifre ile Yenişifre Tekrarı aynı olmalıdır"
DoCmd.GoToControl "Yenişifre"
Else
If [Yenişifre] = [Şifretekrarı] Then
MsgBox "Şifreniz değiştirilmiştir"
DoCmd.OpenForm "SİFREGİRİŞ"
DoCmd.Close acForm, "SİFREDEĞİŞTİRME"
YeniŞifreupdate
End If
End If
End If
End If
End Function
Sub YeniŞifreupdate()
Dim rstkayit As String
If Not IsNull(rstkayit![KULLANICIŞİFRESİ]) > 0 Then
Set rstkayit = CurrentDb.OpenRecordset("select * from KULLANICILAR where ID=" + str(Me.ID.Value) + " ;")
rstkayit.Edit
rstkayit![KULLANICIŞİFRESİ] = LCase$(strKULLANICIŞİFRESİ)
rstkayit.Update
rstkayit.Close
End If
End Sub
Private Sub Command5_Click()
If IsNull(Me.Kullanıcı) Or Me.Kullanıcı = "" Then
MsgBox "Lütfen Kullanıcı Adı Giriniz.", vbOKOnly + vbInformation, "Bilgilendirme Penceresi"
Me.Kullanıcı.SetFocus
Exit Sub
End If
If Me.Şifre.Value = Dlookup ("KULLANICIŞİFRESİ", "KULLANICILAR", "[ID]=" & Me.Kullanıcı.Value) Then
ID = Me.Kullanıcı.Value
YeniŞifretekrarı
Else
MsgBox "Hatalı Şifre! Lütfen Tekrar Deneyiniz", vbOKOnly + vbCritical, "Bilgilendirme Penceresi"
End If
intLogonAttempts = intLogonAttempts + 1
If intLogonAttempts > 3 Then
MsgBox "KAPATILACAK.", vbCritical, "Bilgilendirme Penceresi"
Application.Quit
End If
End Sub
Private Function YeniŞifretekrarı()
If [Yenişifre] = [Şifre] Then
MsgBox "Yenişifre ile Eskişifre Farklı olmalıdır"
DoCmd.GoToControl "Yenişifre"
Else
If IsNull([Yenişifre]) Or IsNull([Şifretekrarı]) Then
MsgBox "Yeni şifre ve Yeni şifre tekrarını girmelisiniz."
DoCmd.GoToControl "Yenişifre"
Else
If [Yenişifre] <> [Şifretekrarı] Then
MsgBox "Yenişifre ile Yenişifre Tekrarı aynı olmalıdır"
DoCmd.GoToControl "Yenişifre"
Else
If [Yenişifre] = [Şifretekrarı] Then
MsgBox "Şifreniz değiştirilmiştir"
DoCmd.OpenForm "SİFREGİRİŞ"
DoCmd.Close acForm, "SİFREDEĞİŞTİRME"
YeniŞifreupdate
End If
End If
End If
End If
End Function
Arkadaşlar,
update kısmında takıldım, bana yardımcı olabilirmisiniz, örneği ekleymiyorum aşağıdaki komutu çalıştıramıyorum, formun olayına
Option Compare Database
Public rstkayit As ADODB.Recordset
Dim strSQL As String
bunu yazdığımda aşğıdaki hatayı veriyor,
This error occurs when an event has failed to run because Microsoft Office Access cannot evaluate the location of the logic for the event. For example, if the OnOpen property of a form is set to =[Field], this error occurs because Access expects a macro or event name to run when the event is fired.
Sub şifreupdate()
strSQL = "SELECT * FROM KULLANICILAR "
Set rstkayit = New ADODB.Recordset
rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With rstkayit
.Find "[ID]=" & Me.Kullanıcı.Column1()
.Fields("KULLANICIŞİFRESİ") = Me.Yenişifre
.Update
End With
End Sub
update kısmında takıldım, bana yardımcı olabilirmisiniz, örneği ekleymiyorum aşağıdaki komutu çalıştıramıyorum, formun olayına
Option Compare Database
Public rstkayit As ADODB.Recordset
Dim strSQL As String
bunu yazdığımda aşğıdaki hatayı veriyor,
This error occurs when an event has failed to run because Microsoft Office Access cannot evaluate the location of the logic for the event. For example, if the OnOpen property of a form is set to =[Field], this error occurs because Access expects a macro or event name to run when the event is fired.
Sub şifreupdate()
strSQL = "SELECT * FROM KULLANICILAR "
Set rstkayit = New ADODB.Recordset
rstkayit.Open strSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic
With rstkayit
.Find "[ID]=" & Me.Kullanıcı.Column1()
.Fields("KULLANICIŞİFRESİ") = Me.Yenişifre
.Update
End With
End Sub
Konuyu Okuyanlar: 2 Ziyaretçi