hoat > 08-08-22, 06:13 PM
AnNguyen > 09-08-22, 11:56 AM
CurrentDb.Execute "update T_taikhoan set pw='" & txtmkm & "' where use='" & taiKHoan & "'"
ttm20062008 > 09-08-22, 12:39 PM
Option Compare Database
Private Sub capnhatpass_Click()
Dim DB As DAO.Database
Dim rs As DAO.Recordset
Set DB = CurrentDb
Set rs = DB.OpenRecordset("T_taikhoan")
If IsNull(txtten) Then
MsgBox "Ten dang nhap khong duoc de trong", vbInformation, "Thong bao"
txtten.SetFocus
Exit Sub
End If
rs.MoveFirst
If rs.Fields("use") <> txtten.Value Then
MsgBox "Ten dang nhap khong dung", vbInformation, "Thong bao"
txtten.SetFocus
Exit Sub
Else
If rs.Fields("pw") <> txtmatkhaucu.Value Then
MsgBox "Mat khau cu khong dung", vbInformation, "Thong bao"
txtmatkhaucu.SetFocus
Exit Sub
Else
If txtmkm.Value <> txtxacnhan.Value Then
MsgBox "Xac nhan mat khau moi khong dung", vbInformation, "Thong bao"
txtxacnhan.SetFocus
Exit Sub
Else
rs.Edit
rs.Fields("pw") = txtmkm.Value
rs.Update
rs.MoveNext
rs.Close
DB.Close
MsgBox "Cap nhat mat khau thanh cong", vbInformation, "Thong bao"
End If
End If
End If
End Sub
longkd_bvct@yahoo.com.vn > 09-08-22, 04:22 PM
(08-08-22, 06:13 PM)hoat Đã viết: Xin chào toàn thể anh chị em.Bạn có 1 table là T_taikhoan mà dòng này lại là "T_phanquyen"
Mình có 1 table: T_taikhoan có 2 cột: use, pw
mình tạo 1 form: F_doimatkhau để ngưởi dùng đổi mật khẩu. Form của mình gồm có:
txtten =[TempVars]![UserName]
txtmatkhaucu
txtmkm
txtxacnhan
Mình viết code cho nút " Đổi mật khẩu":
Private Sub capnhatpass_Click()
Dim DB As DAO.Database
Dim rs As DAO.Recordset
Set DB = CurrentDb
Set rs = DB.OpenRecordset("T_phanquyen")
rs.MoveFirst
If (rs.Fields("use") = txtten.Value And rs.Fields("pw") = txtmatkhaucu) Then
rs.Edit
If (txtmkm.Value = txtxacnhan.Value) Then
rs.Fields("pw") = txtmkm.Value
rs.Update
rs.MoveNext
rs.Close
DB.Close
End If
End If
End Sub
Khi mình click vào thì mật khẩu vẫn không đổi, nhờ anh chị em xem giúp.
Trân trọng
ongke0711 > 09-08-22, 05:15 PM
rs.FindFirst “rs!use =‘“ & me.txtUse & “‘“
If Not rs.NoMatch Then
If rs!pwd = me.txtMKcu Then
..... đổi mk mới
Else
... sai mk cũ, nhập lại
End If
End If
hoat > 17-08-22, 02:53 PM
(09-08-22, 12:39 PM)ttm20062008 Đã viết: Gởi Bạn tham khảo
Mã:Option Compare Database
Private Sub capnhatpass_Click()
Dim DB As DAO.Database
Dim rs As DAO.Recordset
Set DB = CurrentDb
Set rs = DB.OpenRecordset("T_taikhoan")
If IsNull(txtten) Then
MsgBox "Ten dang nhap khong duoc de trong", vbInformation, "Thong bao"
txtten.SetFocus
Exit Sub
End If
rs.MoveFirst
If rs.Fields("use") <> txtten.Value Then
MsgBox "Ten dang nhap khong dung", vbInformation, "Thong bao"
txtten.SetFocus
Exit Sub
Else
If rs.Fields("pw") <> txtmatkhaucu.Value Then
MsgBox "Mat khau cu khong dung", vbInformation, "Thong bao"
txtmatkhaucu.SetFocus
Exit Sub
Else
If txtmkm.Value <> txtxacnhan.Value Then
MsgBox "Xac nhan mat khau moi khong dung", vbInformation, "Thong bao"
txtxacnhan.SetFocus
Exit Sub
Else
rs.Edit
rs.Fields("pw") = txtmkm.Value
rs.Update
rs.MoveNext
rs.Close
DB.Close
MsgBox "Cap nhat mat khau thanh cong", vbInformation, "Thong bao"
End If
End If
End If
End Sub
hoat > 17-08-22, 05:28 PM
ongke0711 > 19-08-22, 11:12 AM
(17-08-22, 05:28 PM)hoat Đã viết: ...
...
If (IsNull(DLookup("use", "T_phanquyen", "use='" & Me.txttendangnhap & "'"))) Or _
(IsNull(DLookup("pw", "T_phanquyen", "pw='" & Me.txtmatkhaucu & "'"))) Then
MsgBox "Mât khâu không hop lê, vui long lien he voi nguoi quan tri", vbInformation
...
...
Private Sub capnhatpass_Click()
On Error GoTo ErrHandler
'Kiem tra nhap lieu'
If IsNull(Me.txttendangnhap.Value) Then
MsgBox "Ban chua nhap tên nguoi su dung", vbExclamation
Me.txttendangnhap.SetFocus
Exit Sub
ElseIf IsNull(Me.txtmatkhaucu.Value) Then
MsgBox "Ban chua nhap mat khau cu", vbExclamation
Me.txtmatkhaucu.SetFocus
Exit Sub
ElseIf IsNull(Me.txtmatkhaumoi.Value) Then
MsgBox "Ban chua nhap mat khau moi", vbExclamation
Me.txtmatkhaumoi.SetFocus
Exit Sub
ElseIf IsNull(Me.txtxacnhan.Value) Then
MsgBox "Ban chua nhap xac nhan mat khau moi", vbExclamation
Me.txtxacnhan.SetFocus
Exit Sub
End If
'Kiem tra du lieu hop le'
If IsNull(DLookup("pw", "T_phanquyen", "use='" & Me.txttendangnhap & "' And pw='" & Me.txtmatkhaucu & "'")) Then
MsgBox "Ten dang nhap va mat khau khong hop le.", vbExclamation
Exit Sub
End If
If txtmatkhaumoi <> txtxacnhan Then
MsgBox "Mat khau xac nhan khong trung", vbInformation
Me.txtxacnhan.SetFocus
Exit Sub
Else
CurrentDb.Execute "Update T_phanquyen SET pw='" & Me.txtmatkhaumoi & "' WHERE use='" & Me.txttendangnhap & "'", dbFailOnError
End If
MsgBox "Doi mat khau thanh cong.", vbInformation
DoCmd.Close
ErrHandler_Exit:
Exit Sub
ErrHandler:
MsgBox "Doi mat khau that bai." & vbCrLf & vbCrLf _
& "Ma loi: " & Err.Number & vbCrLf _
& "Noi dung loi: " & Err.Description, vbCritical
Resume ErrHandler_Exit:
End Sub
hoat > 25-08-22, 07:35 PM
(19-08-22, 11:12 AM)ongke0711 Đã viết:(17-08-22, 05:28 PM)hoat Đã viết: ...
...
If (IsNull(DLookup("use", "T_phanquyen", "use='" & Me.txttendangnhap & "'"))) Or _
(IsNull(DLookup("pw", "T_phanquyen", "pw='" & Me.txtmatkhaucu & "'"))) Then
MsgBox "Mât khâu không hop lê, vui long lien he voi nguoi quan tri", vbInformation
...
...
Code của bạn sai ở đoạn tôi trích dẫn ở trên.
--> Nếu tôi nhập một User đúng nhưng nhập mật khẩu đúng của một User khác thì đoạn code trên vẫn cho qua.
Code bạn đang viết là tập trung toàn bộ code kiểm tra, xử lý vào một nút lệnh cuối cùng nên tôi chỉ sửa lại theo code của bạn.
Bạn đang dùng các If lồng nhau nhiều quá sẽ khó sửa chửa code vì phải suy luận logic nối tiếp lồng nhau.
Tôi sẽ tách code kiểm tra các điều kiện ra riêng từng phần để nó tường minh hơn và dễ kiểm tra sau này.
- Tách code kiểm tra việc có nhập liệu có đầy đủ ra một phần khác.
- Nếu nhập liệu chuẩn rồi thì mới đi tới kiểm tra tính hợp lệ của dữ liệu.
- Thêm bẫy lỗi nếu phát sinh ngoài dự tính.
Mã PHP:Private Sub capnhatpass_Click()
On Error GoTo ErrHandler
'Kiem tra nhap lieu'
If IsNull(Me.txttendangnhap.Value) Then
MsgBox "Ban chua nhap tên nguoi su dung", vbExclamation
Me.txttendangnhap.SetFocus
Exit Sub
ElseIf IsNull(Me.txtmatkhaucu.Value) Then
MsgBox "Ban chua nhap mat khau cu", vbExclamation
Me.txtmatkhaucu.SetFocus
Exit Sub
ElseIf IsNull(Me.txtmatkhaumoi.Value) Then
MsgBox "Ban chua nhap mat khau moi", vbExclamation
Me.txtmatkhaumoi.SetFocus
Exit Sub
ElseIf IsNull(Me.txtxacnhan.Value) Then
MsgBox "Ban chua nhap xac nhan mat khau moi", vbExclamation
Me.txtxacnhan.SetFocus
Exit Sub
End If
'Kiem tra du lieu hop le'
If IsNull(DLookup("pw", "T_phanquyen", "use='" & Me.txttendangnhap & "' And pw='" & Me.txtmatkhaucu & "'")) Then
MsgBox "Ten dang nhap va mat khau khong hop le.", vbExclamation
Exit Sub
End If
If txtmatkhaumoi <> txtxacnhan Then
MsgBox "Mat khau xac nhan khong trung", vbInformation
Me.txtxacnhan.SetFocus
Exit Sub
Else
CurrentDb.Execute "Update T_phanquyen SET pw='" & Me.txtmatkhaumoi & "' WHERE use='" & Me.txttendangnhap & "'", dbFailOnError
End If
MsgBox "Doi mat khau thanh cong.", vbInformation
DoCmd.Close
ErrHandler_Exit:
Exit Sub
ErrHandler:
MsgBox "Doi mat khau that bai." & vbCrLf & vbCrLf _
& "Ma loi: " & Err.Number & vbCrLf _
& "Noi dung loi: " & Err.Description, vbCritical
Resume ErrHandler_Exit:
End Sub