2016-10-04 1 views
1

사용자가 비밀번호를 변경할 수있는 옵션이 포함 된 액세스 프론트 엔드 로그인 양식이 있습니다. frm_Login 하위에서 나는 frm_PassChange에 입력 한 사용자 이름 "Me.txtUserName"을 전달하는 다음 사용하려고 해요 :액세스 로그인 비밀번호 업데이트 VBA 및 SQL

If Me.changepass = "Yes" Then 
    DoCmd.OpenForm "frm_PassChange", , , , , Me.txtUserName 
End If 

이 frm_PassChange 하위 나는 새 비밀번호 "Me.txtNewPass"를 입력하도록 할 I 다음 USERTABLE X_tblUsers에 저장합니다 : 나는 DoCmd.OpenForm의 통화 형식 불일치 오류를 받고 있어요

CurrentDb.Execute "UPDATE X_tblUsers SET X_tblUsers.Password = '" & Replace(Me.txtNewPass.Value, "'", "''") & "' " & _ 
        "WHERE X_tblUsers.Username = '" & Me.OpenArgs & "'" 

. 아무도 도와 줄 수 있습니까? 이 인수를 팝업 것 -

+1

1. 데이터베이스를 쿼리 할 때 항상 매개 변수를 사용하십시오. [Best Practices - SQL 문 실행하기] (http://stackoverflow.com/documentation/.net/3589/ado-net/14261/best- practice-executing-sql-statements)를 사용합니다. 2) 암호를 일반 텍스트로 저장하지 말고 대신 해시를 만들고 해시를 유지하십시오. 인증 (로그인) 할 때 암호 입력을 해시하고 저장된 해시와 비교합니다. – Igor

+0

Igor - 매개 변수 사용과 관련하여 어떤 의미인지 설명해 주시겠습니까? 그리고 예, 기본 기능을 작동 시키면 해시를 사용합니다. – cixelsyd

+0

[Microsoft Access 업데이트 쿼리에서 프로그래밍 방식으로 매개 변수를 전달할 수 있습니까?] (http://stackoverflow.com/q/16568461/1260204) – Igor

답변

1

당신은

그냥 입력 할 때 인텔리을 사용하고 쉼표를 삽입하면 WindowMode 인수에 전달하려는 지금 당신의 Me.txtUserName

전에 또 하나의 쉼표가 필요합니다 당신이가는대로