Recipe4hate
Legacy Member
Goedemiddag dames en heren,
Ik heb een vervelend probleem in VBA. Ik roep in een For-lus een routine aan, die mogelijk kan falen. Indien deze faalt, zou ik gewoon de volgende Next moeten hebben en de For-lus opnieuw laten starten met de 2e routine... enz.
De calcInvoice sub is gebaseerd op duizend-en-één queries, dus deze aanpassen is onmogelijk (en functioneert naar behoren). De error die moet worden opgevangen is dus 3021.
Het rare is, is dat de eerste keer dat calcInvoice een error genereert, de errorbreak wel wordt aangesproken, de keer daarop niet meer (ik krijg dan effectief een error op lijn x in de calcInvoice sub.)
Ik heb al op het internet gelezen dat het kan dat de huidige Errorhandler actief/nonactief wordt, naargelang deze is uitgevoerd?
Alle hulp is welkom!
Ik heb een vervelend probleem in VBA. Ik roep in een For-lus een routine aan, die mogelijk kan falen. Indien deze faalt, zou ik gewoon de volgende Next moeten hebben en de For-lus opnieuw laten starten met de 2e routine... enz.
De calcInvoice sub is gebaseerd op duizend-en-één queries, dus deze aanpassen is onmogelijk (en functioneert naar behoren). De error die moet worden opgevangen is dus 3021.
Het rare is, is dat de eerste keer dat calcInvoice een error genereert, de errorbreak wel wordt aangesproken, de keer daarop niet meer (ik krijg dan effectief een error op lijn x in de calcInvoice sub.)
Ik heb al op het internet gelezen dat het kan dat de huidige Errorhandler actief/nonactief wordt, naargelang deze is uitgevoerd?
Code:
For iC = 0 To UBound(arrAllActiveCarriers)
On Error GoTo errorbreak
Err.Clear
[Form_Swb_InvoiceData]![Combo_Carrier].Value = arrAllActiveCarriers(iC)
calcInvoice
errorbreak:
If (Err = 3021) Then
'//This error does not need to be trapped, but has to be passed
ElseIf (Err > 0) Then
MsgBox "Error"
End If
Next
Alle hulp is welkom!