2017-02-02 8 views
0

すべてのフィールドが満たされていることを確認したい場合、[Status predmeta]フィールドが "Završeno"の場合、[Predmetzaključan]というチェックボックスを解除してロックを解除します。実行時エラー '28'

最初の関数は、changeイベントのすべてのテキストボックスと、changeイベントの[status predmeta]の2番目の関数です。

私はすべてのフィールドを入力し、[ステータスpredmeta]を "Završeno"に設定すると、 "スタックの空き領域 - 実行時エラー '28'"が表示され、デバッグをクリックすると2行目にマークされた行が表示されます。

すべてのフィールドがnullでないかどうかをチェックする機能です(設定では、すべてのフィールドで長さをゼロにすることができます)。あなたは無限ループを作成しているDebugging VBA Code

(:

Public Function provjerapolja() As Boolean 

If Not IsNull(Me.Naziv_tvrtke) And Not IsNull(Me.Ime_korisnika) And Not IsNull(Me.Prezime_korisnika) And Not IsNull(Me.Adresa_korisnika) And Not IsNull(Me.Telefon) And Not IsNull(Me.Mail) And Not IsNull(Me.Vrsta_uredaja) And Not IsNull(Me.Model) And Not IsNull(Me.Lokacija) And Not IsNull(Me.Datum_ugradnje) And Not IsNull(Me.Datum_dogovorenog_servisa) And Not IsNull(Me.Opis_kvara) And Not IsNull(Me.Napomene) And Not IsNull(Me.Nalog_dodijeljen) And Not IsNull(Me.Broj_radnih_sati) And Not IsNull(Me.Udaljenost) And Not IsNull(Me.Obavljeni_radovi) And Not IsNull(Me.Status_predmeta) And Not IsNull(Me.Otpremnica) And Not IsNull(Me.Broj_otpremnice) And Not IsNull(Me.Račun) Then 
provjerapolja = True 


    If provjerastanja = True Then 
    [Predmet zaključan].Locked = False 
     End If 
Else 
provjerapolja = False 

End If 
End Function 

機能[ステータスpredmeta]が "Završeno" と異なるかどうかをチェックし、呼び出しprovjerastanja

Public Function provjerastanja() As Boolean 

If [Status predmeta] <> "Završeno" Then 
provjerastanja = False 

ElseIf [Status predmeta] = "Završeno" Then 
provjerastanja = True 


    If provjerapolja = True Then <--- Debug showing this line as error 
    [Predmet zaključan].Locked = False 
    End If 


End If 
End Function 
+0

あなたは関数provjerastanjaからprovjerapoljaを呼び出し、provjerapoljaからprovjerastanjaを呼び出しています。 – RyanL

答えて

0

関数projerapoljaとprojverastanjaの結果を格納する変数を作成します。そうでないと、永遠に別の関数が呼び出されます。例えば。

Public Function provjerastanja() As Boolean 
Dim bProv as Boolean 

If [Status predmeta] <> "Završeno" Then 
provjerastanja = False 

ElseIf [Status predmeta] = "Završeno" Then 
provjerastanja = True 

    bProv=provjerapolja 
    If bProv = True Then <--- Debug showing this line as error 
    [Predmet zaključan].Locked = False 
    End If 


End If 
End Function 
0

よりも何が起こるかを確認するために、これを読んでまたは再帰)を呼び出すことができます。あなたはあなたのアプローチを再考する必要があります。