dbengine.Errors.Count op nul krijgen

Status
Niet open voor verdere reacties.

HHunnekens

Gebruiker
Lid geworden
16 apr 2013
Berichten
63
Goedemorgen,

'K zou graag - na een foutenafhandeling - de errors teller op nul willen kunnen zetten m.b.v. VBA-code in Access ... kan dit ? If so, hoe kan ik de dbengine.errors collectie leeg krijgen ZONDER eerst de hele Access applicatie te sluiten ?

Bvd, mvg,

Hans Hunnekens
 
Leg eens uit wat je wilt. Van dit verhaal snap ik namelijk hoegenaamd niks. En wat is je probleem eigenlijk, dat deze vraag triggert?
 
Nadere uitleg

Je kunt bij een applicatie foutmeldingen krijgen en dan die afvangen met een fouten-afhandeling ( On Error Goto .... foutenafhandelaar ).

Er komt dan in de collectie dbengine.errors een foutmelding te staan, echter, deze wil ik gelijk afhandelen en daarna "weg" hebben. Dit wegens een "If Then" met "If errors > 0 Then". Nu kan ik die eenmaal afhandelde fout niet verwijderen uit de collectie dbengine.errors ( verdwijnt pas als de applicatie wordt gesloten ). Graag zou ik dus die eenmaal afhandelde foutmelding UIT die collectie willen krijgen, zodat men "If errors > 0 Then" d'r mee kan gaan functioneren.

Mvg,

HH
 
Ik haal dit uit de Help:
Bij elke bewerking van DAO-objecten kunnen een of meer fouten worden gegenereerd. Zodra er een fout optreedt, wordt er een Error-object in de Errors-collectie van het DBEngine-object opgenomen. Wanneer bij een volgende DAO-bewerking een fout wordt genereerd, wordt de Errors-collectie gewist en wordt de nieuwe set Error-objecten in de Errors-collectie geplaatst. Het object met het hoogste nummer in de Errors-collectie (DBEngine.Errors.Count - 1) correspondeert met de fout die wordt gemeld in het Err-object van Microsoft Visual Basic for Applications (VBA).

DAO-bewerkingen waarbij geen fout wordt gegenereerd, hebben geen invloed op de Errors-collectie.

Elementen van de Errors-collectie worden niet op dezelfde manier toegevoegd als bij andere collecties, zodat de methoden Append en Delete niet worden ondersteund.
1. Daaruit haal ik twee dingen: bij een nieuwe DAO fout wordt de collectie vanzelf gewist
2. Je kunt de collectie niet wissen.
De foutafhandeling kun je natuurlijk ook op een andere manier checken, namelijk met een public Matrix variabele die je vult met de errors, en later weer verwijdert.
 
Ik gebruik wel eens err.clear na een foutafhandeling.
Code:
if err.number > 0 then 
'doe iets 
endif 
err.clear
Maar wellicht bedoel je iets anders.

Jan
 
Maar dat is dan ook een VBA collection.
 
Dank voor de reacties !
Oplossing : niet de Errors collectie gebruiken ( zoals ik trachtte ), maar juist de Err collectie. Deze laatste laat zich inderdaad WEL wissen met een clear ( nl. die Errors collectie wist zich pas nadat de hele applicatie wordt gesloten ( los van het feit om een evt. NIEUWE foutmelding een oude vervangt )).

Enfin, gebruikmaking van de Err collectie blijkt goed te werken voor mijn doel.

Nogmaals dank, mvg,

Hans Hunnekens
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan