access meldingen volledig uitschakelen

  • Onderwerp starter Onderwerp starter feint
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

feint

Gebruiker
Lid geworden
3 jun 2008
Berichten
273
Hallo allemaal,

Bij een formulier voeg ik een record toe in een tabel. Als ik dit formulier laat sluiten door een knop in het formulier krijg ik een foutmelding dat er iets is foutgegaan bij het opslaan en dat als ik het formulier sluit de opgeslagen data verloren gaat.

Echter doet het formulier wat die moet doen, hij slaat de informatie op en zelfs als ik het formulier afsluit wordt de data behouden.

Nu wil ik dus dat deze melding weg gaat en heb al vanalles geprobeerd
Macro -> berichtvenster = nee
VBA code bij afsluiten: Docmd.Setwarnings False

Geen van deze meldingen werkt.
Ik heb in de database waar normaal meldingen komen voor het opslaan zelf meldingen ingezet en wil dus dat alle meldingen in de DB worden uitgezet.

Kan dit?
 
Als je eenfout melding krijgt, betekent dat doorgaans dat er op een bepaald moment in je procedure iets fout gaat. Dat er uiteindelijk wel wordt opgeslagen, en je naar zeggen niks mist in de opgeslagen data, hoeft met de foutmelding niks te maken te hebben. Je zou dus eerst moeten uitzoeken op welke plek de foutmelding worden gegenereerd, en dat oplossen. Je kunt die plek makkelijk vinden, door, als je een foutmelding krijgt, de code te bekijken. Die optie kun je als het goed is aanklikken in de foutmelding.
Een andere truc die je kunt proberen, is om vanaf het begin van de code (ik hoop voor je dat het vba is, en geen macro) de Stapmodus aan te zetten. Als je de cursor 0p de eerste regel van de code zet, en op <F9> drukt wordt de regel gemarkeerd met een kleur en een stip in de kantlijn. Als je de code nu uitvoert, stopt de uitvoering bij de gemarkeerde regel, en kun je met <F8> elke regel apart uitvoeren. Je ziet dan snel genoeg waar de fout zit, want daar krijg je dan vaak een foutmelding, of de cursor springt naar een niet-verwachte plek met (bijvoorbeeld) een foutmelding.

Om foutmeldingen te voorkomen heb je niks aan Setwarnings False; dat commando onderdrukt de vraag bij het uitvoeren van actiequeries bijvoorbeeld. Oftewel: volkomen reguliere meldingen, die je aan of uit kunt zetten.
Wel kun je de foutmelding sturen, als je op een bepaalde plek in je code een (te verwachten) foutmelding wilt vermijden.
Voorbeeldje? je hebt een code gemaakt die een query verwijdert, en opnieuw aanmaakt. De eerste regel kan een foutmelding opleveren, als je de query zelf al hebt verwijderd: Access probeert dan een query te verwijderen die niet meer bestaat. In dit geval wil je die fout voorbij, want je weet dat de volgende stap wèl goed is, want de query kan gewoon opnieuw worden aangemaakt.
De oplossing is dan dat je de volgende code boven de regels zet die je wilt omzeilen:

Code:
On Error Resume Next

De foutmelding zou ik daarna wel weer aanzetten, voor fouten die je wel wilt afvangen. Je krijgt dan iets als:

Code:
On Error Resume Next
Commando om query te verwijderen
Commando om nieuwe query te maken
On Error Goto 0
 
fout zat hem in de insert query. Ik voerde 2 inserts query achter elkaar uit (2 aparte tabellen) en die konden schijnbaar niet goed met elkaar overweg. Ze deden het wel, maar werkte niet samen om het zo maar te zeggen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan