2017-08-04 1 views
1

私は注文書をデザインしており、フォームを特定の従業員に提出するためのアクセスを制限したいと考えています。従業員テーブルには、氏名、パスワード(従業員ごとに異なる)、従業員が何を行うことができるかを示すさまざまなチェックボックスフィールドがあります。例えば、従業員Aはパスワード「パスワード」を持ち、フィールド「Can_Submit_Request」がチェックされているかもしれません。これは、「抽出条件式でのデータ型の不一致」のエラーを受け取ったアクセス中のボタンのパスワード

If Me.txPassword = DLookup("Password", "Employee", "Employee_ID='" & YourEmployee_ID & "'") Then 
    If Nz(DLookup("Can_Submit", "Employee", "Employee='" & YourEmployee_ID & "'") , False) = True Then 
     '/ continue on to the Submit process 
    Else 
     Msgbox "You do not have permission to submit" 
    End If 
Else 
    Msgbox "Invalid Password" 
End If 

、そして確かに私は本当に基準が何であるかを知らない:私はこれ以前に見たとき、私が発見し、修正、次のコードを試してみましたとりわけYourEmployee_IDの部分です。私はAccessとVBAには非常に新しく、DLookupを無駄に使う方法を調べようとしていますので、これに関する助けがあれば大歓迎です。

答えて

1

VBAではちょっと錆びますが、「条件式のデータ型の不一致」とは、コードのどこかにデータ型(ブール値、整数など)があります。データベースは期待しています。私。 Employee_IDが数値/整数のデータ型(アクセス可能であれば表のデザインをチェックする)であれば、変数promptがVBAの整数であることを指定する必要があります。ここで

は理解することができます別の記事では、少しのデータ型です:あなたは「YourEmployee_ID」変数をユーザに促しどこコード内で指定した場所 http://www.informit.com/articles/article.aspx?p=712186&seqNum=3

あなたが表示されことができますか?

+0

「YourEmploee_ID」の参照が適切です。パブリック変数か、ボタンのフォームにある場合は、「Me!YourEmployee_ID」と表示される不正なフォームコントロール参照をOPが使用しています。 – MoondogsMaDawg

1

Employee_IDが数字型フィールドの場合は、アポストロフィ区切り文字を使用しないでください。一方の式ではEmployee_IDを使用しますが、もう一方の式ではEmployee_IDを使用します。 Can_SubmitはYes/Noフィールドですか?

If Me.txPassword = DLookup("Password", "Employee", "Employee_ID=" & YourEmployee_ID) 
    If Not Nz(DLookup("Can_Submit", "Employee", "Employee_ID=" & YourEmployee_ID), False) Then 
     MsgBox "You do not have permission to submit" 
    End If 
Else 
    MsgBox "Invalid Password" 
End If 
関連する問題