2017-01-18 24 views
0

フォームのパスワード保護を試みていますが、フォームの起動時にエラーが発生します。ここでパスワードの保護フォームの保護

は、私が受け取るエラーです:

イベント・プロパティの設定として入力されたオープンの式は、次のエラーが発生します。手順宣言がイベントまたは同じ名前を持つ手順の多くではない説明を行います。

Option Compare Database 

    Public Sub Form_Open() 
Cancel = (InputBox("Password?") <> "Cen") 

End Sub 

Private Sub cmdImport_Click() 

On Error GoTo Click_Err 
    If Nz(txtReportDate, "") = "" Then 
     MsgBox "NOTICE! Please enter the Report Month you wish to Import." 

     Else 

    ' Dim rs As Recordset 
    'Dim sql As String 

    'Loop through recordset of all Contracts and import files 
    ' sql = "SELECT DISTINCT FROM AAABBC_CE" 
    ' Set rs = CurrentDb.OpenRecordset(sql) 
    ' rs.MoveLast 
    ' rs.MoveFirst 
    ' If rs.RecordCount > 0 Then 
     ' Do While rs.EOF = False 
      ' ImportFile rs!DISTINCT 
      ' rs.MoveNext 
     ' Loop 
    ' End If 

    DoCmd.Hourglass True 
    DoCmd.SetWarnings False 

    DoCmd.Hourglass False 
    DoCmd.SetWarnings True 
    MsgBox "Finished Importing!" 
    DoCmd.OpenQuery "query_Files_Loaded_CE", acViewNormal, acReadOnly 

click_Exit: 
    DoCmd.Hourglass False 
    DoCmd.SetWarnings True 
    Exit Sub 

Click_Err: 
    DoCmd.Hourglass False 
    MsgBox "Error Detected: " & Err.Number & " - " & Err.Description, vbCritical, "Error" 
    Resume click_Exit 

     Exit Sub 
+0

私はパスワードで保護する方法を考えましたが、実際にはVBコードを編集しないようにしています。 – KKP

+0

VBAコードでパスワードをハードコーディングするのではなく、Active Directoryに照会して、現在の認証済みユーザー(ネットワーク上にいるかどうか)が機能にアクセスできるユーザーグループにいるかどうかを判断できます。そうすれば、パスワードはどこにもないプレーンテキストに表示されますが、ユーザーは常に実行を中断して手順をスキップできます。 VBAコードそのものをパスワードで保護することでそれを緩和することができますが、どちらかにクラックすることは不可能ではありません。 –

+0

ADのクエリが面倒すぎる場合は、ユーザーがADによってアクセス制御されているフォルダにアクセスできるかどうかをテストしてください。 – ThunderFrame

答えて

1

あなたFORM_OPEN宣言が間違っている、それはパラメータが含まれていない:

は、ここに私のコードです。

Private Sub Form_Open(Cancel As Integer) 
関連する問題