2016-05-11 3 views
1

「コードの末尾にある「フラグとErr05」がどこで宣言されているのか分かりませんか?私はプロジェクト全体を検索し、2つのパラメータが宣言された場所を見つけることができません。別のプロジェクトで以下のコードを使用しようとすると、「実行時エラー:このコレクションに見つからないアイテム」というエラーメッセージが表示されます。VBAのACCESSで「フラグ」と「Err05」がどのように宣言されましたか?

>Private Sub SanityCheck_Click() 
>Dim St As String, WrnFlag As Boolean, j As Integer 
>Dim RS As Recordset, RS1 As Recordset, i As Integer, WrongRootCauses As String 
>Dim Err01 As String, Err02 As String, Err03 As String, Err04 As String 
>WrnFlag = False 
>If IsNull(Me.FactoryList) Then 
> MsgBox "Select valid Factory before proceeding.", vbExclamation 
>Else 

> St = "SELECT Factory, Step1, Step2, Step3, Step4, DateColumn FROM [tbl >Factory] WHERE Allowed = True and Factory = """ & Me.FactoryList.Value & """" 
> Set RS = CurrentDb.OpenRecordset(St, dbOpenSnapshot) 

'-- 12NC codes check -- 
    > St = "SELECT Count([" & RS!Step2 & "].PLANT) AS 12NC_chk " & _ 
    >"FROM [" & RS!Step2 & "] " & _ 
    > "WHERE (((Len(Trim(IIf(Left(Trim([12NC_CODE]),3)=""000"",Right>([12NC_CODE],Len([12NC_CODE])-3),[12NC_CODE])))) Not In (0,1,12)));" 
' "WHERE (((Len(Trim([12NC_CODE]))) Not In (0,1,12)));" 

    > Set RS1 = CurrentDb.OpenRecordset(St, dbOpenSnapshot) 
    >If RS1.BOF And RS1.EOF Then 
    > Err05 = "+ No 12NC issues found." 
    >Else 
    >  RS1.MoveFirst 
    > RS1.MoveLast 
    > If RS1![12NC_chk] = 0 Then 
     >  Err05 = "+ No 12NC issues found." 
     > Else 
     > Err05 = "- " & RS1![12NC_chk] & " Incorrect 12NCs found!" 
     > WrnFlag = True 
     > End If 
    > End If 
'-- 

    > If WrnFlag = True Then **Flag** = vbCritical Else **Flag** = vbInformation 
    > MsgBox RS!Factory & " input data sanity check:" & vbCrLf & vbCrLf & " " & >Err01 & vbCrLf & " " & Err02 & vbCrLf & " " & Err03 & _ 
>  vbCrLf & " " & Err04 & vbCrLf & " " & Err05 & vbCrLf & vbCrLf & IIf>>(WrongRootCauses = "", "", " Unknown ADP Root Cause(s):" & vbCrLf & WrongRootCauses), Flag 

    > RS.Close 
    >RS1.Close 
>End If 
>End Sub 
+0

これらはすべて '>' – litelite

答えて

0

二posibilities

  1. ファイルでない限り、あなたが明示的に変数を宣言することを余儀なくされていない、トップにOption explicitを持っています。つまり、FlagErr05が実際に宣言されたことはありません。 VBAはVariantタイプと初期値のNothingでオンザフライで作成します。

  2. これらは、別のファイルのサブの外部で宣言されたグローバル変数である可能性があります。変数を右クリックして、定義をクリックすると、アクセス方法が表示されます。

+0

とチェックされています。上部に「Opeton explicit」があります。なぜ宣言を見つけることができないのですか? ? –

+0

@Lauraxu私は別の確からしさを追加するために私の答えを編集しました – litelite

+0

こんにちは、Litelite、私は2番目の方法を試みました。 「カーソルの下の識別子が認識されません」と表示されます。しかし、上記のコードはどんなバグでもうまくいく。他の可能性? –

関連する問題