2016-10-04 5 views
1

アクセスフロントエンドログインフォームには、パスワードを変更するオプションが含まれています。 frm_Loginサブで私はfrm_PassChangeに入力したユーザ名「Me.txtUserName」を渡すために、次を使用しようとしています:frm_PassChangeサブでアクセスログインパスワード更新VBAとSQL

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

私は、ユーザーが新しいパスワード「Me.txtNewPass」を入力したい私は、その後、USERTABLE X_tblUsersに格納されます:

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

私はDoCmd.OpenFormコールの型の不一致エラーを取得しています。 誰も助けることができますか?それは、引数をポップアップよ -

+1

1.データベースをクエリするときは、常に[ベストプラクティス - SQL文を実行する]を参照してください(http://stackoverflow.com/documentation/.net/3589/ado-net/14261/best- practices-executing-sql-statements)を使用します。 2)決してパスワードをプレーンテキストとして保存せず、代わりにハッシュを作成し、ハッシュを永続させます。パスワード入力を認証(ログイン)し、格納されたハッシュと比較します。 – Igor

+0

Igor - パラメータの使用に関する意味を説明できますか?そして、はい、私は基本的な機能を動作させると、ハッシュを使用します。 – cixelsyd

+0

[Microsoft Accessの更新クエリでプログラムでパラメータを渡すことは可能ですか?](http://stackoverflow.com/q/16568461/1260204) – Igor

答えて

1

あなたは

はちょうどあなたが入力すると、インテリセンスを使用し、コンマを挿入し、あなたがWindowMode引数に渡ししようとしている今、あなたのMe.txtUserName

前に、1つの以上のコンマが必要あなたが行く通り