Foutafhandeling

Status
Niet open voor verdere reacties.

sanderce

Gebruiker
Lid geworden
7 aug 2009
Berichten
19
Hallo slimme forum bezoekers,

ik heb in access een probleempje en ik kom er niet uit.

ik heb een formulier gemaakt met diverse invul velden. deze invul velden moeten ingevuld worden wil je verder kunnen. als er dus velden leeg blijven verschijnt er een berichtvenster met het verzoek om de velden in te vullen. zover ben ik nu. maar als ik dan men berichtvenster bevestig met ''ok'' krijg ik nog de officiele foutmelding te zien. deze wil ik niet meer zien. weet iemand of dat mogelijk is met een macro of expressie te programmeren. ik hoor graag van jullie.

alvast bedankt.
 
Laatst bewerkt:
maar als ik dan men berichtvenster bevestig met ''ok'' krijg ik nog de officiele foutmelding te zien

Wat is die officiele melding dan en wat is de aanleiding dat die melding komt?
 
Wat is die officiele melding dan en wat is de aanleiding dat die melding komt?

de officiele melding verteld dat de macro 'ga naar volgende record' niet uitgevoerd kan worden omdat er niks ingevuld is. dat is dus ook de aanleiding dat de melding verschijnt. nu heb ik dus onder eigenschappen van het formulier aangegeven dat als er een fout is dat er een berichtvenster moet komen. dat gebeurd ook. alleen er moet nog een macro opgenomen worden zodat de officiele melding niet verschijnt. hopleijk kun je me helpen.

mvg
 
Welke code gebruik je voor het foutafvangen?
Je kunt in ieder geval het Systeem menu in de Eigenschappen op Nee zetten, dat vangt al wat foutmeldingen af...
 
Laatst bewerkt:
Welke code gebruik je voor het foutafvangen?
Je kunt in ieder geval het Systeem menu in de Eigenschappen op Nee zetten, dat vangt al wat foutmeldingen af...

Ik heb nog geen code dat is nu net men vraag. het enige wat ik gevonden heb is onder ''eigenschappen'' en dan bij ''gebeurtenis'' dat je iets kunt invoeren achter ''bij fout'' maar wat ik moet invullen dat weet ik niet. de sugestie voor systeem menu uitzetten had ik al gedaan. hopelijk heb je een oplossing voor me.

mvg
 
Lijkt me handiger als je je database zonder gevoelige informatie upload. Dan kunnen we even kijken waar die standaard melding door geactiveerd wordt. Database eerst comprimeren en vervolgens inpakken.

Kennelijk is er een code gemaakt om te controleren of velden wel of niet gevuld zijn. Misschien komt de standaard melding omdat de velden ook op "Invullen verplicht' staan. Krijg je dus een dubbele controle en melding.
 
Om eens wat uit te proberen:

Code:
Private Sub Form_Error(DataErr As Integer, Response As Integer)
Const ErrNullValue1 = 3314
Const ErrNullValue2 = 2169
Static bCheck As Boolean

Select Case DataErr
    Case ErrNullValue1, ErrNullValue2
        If bCheck = False Then
            strMsg = "Velden met een "" * "" asterisk zijn verplichte velden." & vbCrLf & _
            "Vuld asjeblieft iets nuttigs in..." & vbCrLf & _
            "Of druk op ESC om te annuleren."
            MsgBox strMsg, vbExclamation
            bCheck = True
        End If
        Response = acDataErrContinue
    Case Else
        Response = acDataErrDisplay
End Select

End Sub
Bij het niet-invullen van verplichte velden, krijg je een 3314 fout. Hiermee vang je al het e.e.a. af. En hier kun je een uitgebreide whitepaper lezen over het afvangen van foutmeldingen.
 
Laatst bewerkt:
PFFFF dit gaat me al wel snel. hahaha

waar zou ik die code dan aan vast moeten maken? aan de knop die het probleem veroorzaakt of aan het totale formulier? en waar ga ik deze code inzetten? ben nog maar beginnend.

alvast weer bedankt

mvg
 
De code uit mijn voorbeeld hang je achter het formulier. Je kunt de code in zijn geheel kopieren en plakken, en dan staat hij gelijk goed, of je kopieert de tekst tussen de regels

Private Sub Form_Error(DataErr As Integer, Response As Integer)

...

End Sub


en kopieert dat vervolgens in de Eigenschappen van het formulier bij de gebeurtenis <Bij Fout>, dan bereik je precies hetzelfde.
 
Helaas dat had ik al geprobeerd en dat werkt helaas niet. andere ideeen?

mvg
 
Daarvoor is een voorbeeldje wel zo handig; er zijn namelijk wel een aantal redenen te verzinnen dat het niet werkt, dus ik check dat liever op een (uiteraard gestripte) db.
 
De db is helaas te groot om te kunnen uploaden zelfs na compressie en inpakken. dus kan hem je alleen toe mailen?!

het probleem zit hem dus in het formulier

''evenementen invoer''

als ik hier klik op

''toevoegen en volgende'' of ''toevoegen en sluiten''

wil ik een berichtvenster krijgen met bijvoorbeeld de tekst

*u heeft niet alle velden ingevuld*

en wil dan niet meer de orginele foutmelding zien wat er allemaal foutgaat.

hopelijk is het zo een beetje duidelijker

alvast bedankt

mvg
 
Wat ik zelf vaak doe, als ik een controle wil op het invullen van een formulier, is op het formulier een tekstveld maken, en bij elk veld een <Na bijwerken> zetten die als het veld niet leeg is een waarde bij het veld optelt. Daarbij gebruik je dan een factor 2 als toevoegwaarde, dus een reeks als 1-2-4-8-16 etc.
De <Na bijwerken> telt elke keer de waarden van alle velden bij elkaar op als de velden niet leeg zijn. Als alle velden zijn ingevuld, heb je dus een totaal, op basis waarvan je bijvoorbeeld de knoppen Opslaan en Sluiten kunt activeren. Bij elke waarde onder het totaal laat je de knoppen op Disabled staan, of geef je een Msgbox met de velden die nog niet zijn ingevuld.
 
Ho Ho Ho!!!:eek:

dat gaat me echt allemaal veel te vlug :confused: sorry maar ben maar een beginnende amateur. misschien mogelijk het me in ''normale'' taal uit te leggen? ik hoor graag van je / iemand.

mvg

sander
 
Ik zal vanavond wel even een voorbeeldje maken; kun je zien wat ik bedoel.
Dan heb ik ook wat meer tijd om het rustig uit te leggen ;)
 
Ik zal vanavond wel even een voorbeeldje maken; kun je zien wat ik bedoel.
Dan heb ik ook wat meer tijd om het rustig uit te leggen ;)

Hoi OctaFish,

is het toevallig al gelukt met je voorbeeld? hoop dat je men probleem kunt oplossen.

mvg
 
Time flies....
Ik zal er vanavond alsnog induiken!
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan