• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Na controle form nieuwe input vragen

Status
Niet open voor verdere reacties.

jakko1972

Gebruiker
Lid geworden
28 jul 2003
Berichten
26
Ik heb een form gebouw en wil bij twee textboxen op een aantal criteria controleren of alles goed is ingevuld. Het controleren van de waardes is mij gelukt, echter dan....

Ik heb een code die de form volgens mij unload en de form opnieuw laad opstarten. Probleem is echter dat VBA de form voor een tweede keer oplaad en de eerste onthoud. Ik krijg dan 1 goede en 1 foute resultaat.

Hoe kan ik ervoor zorgen dat ik de form opnieuw kan laden en toch alles maar 1 keer uitvoerd/onthoud.

De code die ik gebruikte wanneer blijkt dat er iets fout is ingevoerd is bijvoorbeeld:

If TextBox1.text > TextBox2.text Then
MsgBox ("Error: The end week starts before the start week")
Unload Me
UserForm1.Show
End If
 
Workarround

Ik heb de oplossing niet om het netjes te doen,

Wat ik heb gedaan is het volgende

If TextBox1.text > TextBox2.text Then
MsgBox ("Error: The end week starts before the start week")
Unload Me
UserForm1.Show
err = True
Exit Sub
End If

If err = True Then 'test to make sure this procedure runs only once
Exit Sub
End If

Volgens mij krijgt iedere programmeur hier hoofdpijn van, maar het werkt bij mij wel. En door gebrek aan kennis kan ik niet beter.
 
Ik begrijp niet waarom je de form wilt stoppen en terug starten. Is het niet eenvoudiger om gewoon de nodige velden terug te initialiseren als er een fout voorkomt?
 
Ingrid,

Ik snapt niet wat je bedoeld. Het liefst zou ik het form laten zien dat ze fout hebben ingevuld zodat ze zien waar de fout zit. Maar mijn gebrek aan kennis zorgt voor de omslachtige oplossing door het form opnieuw op te starten en het hele proces vervolgens opnieuw te laten doorlopen.

Ik ben ervan overtuigd dat het eenvoudiger kan, maar hoe? Dat is bij mij de vraag.
 
Ingrid,

Ik heb het gevoel dat ik heel dicht bij zit dankzij jou hulp en toch lukt het me niet.

Ik heb die file van jou behoorlijk bestudeerd en alles van Setfocus gelezen. Overigens voor mij een geheel nieuwe commando. Die ik blijkbaar nog niet helemaal snap.

Ik heb een testje overgenomen en aangepast op mijn situatie. Echter ik zie in jou voorbeeld keurig de form weer verschijnen met de waarden die je hebt ingevuld. Bij mij komt die form niet terug. Ik heb je file inmiddels van voor naar achter gelezen en weer terug, maar zie niet hoe jij dit voor elkaar krijgt.

Op dit moment heb ik dit:
If ComboBox1.Value = "" Then
MsgBox "You didn't fill in a knowledge group"
ComboBox1.SetFocus
Exit Sub
End If

Alleen bij mijn exit sub stopt het programma geheel terwijl in jou voorbeeld het terug gaat naar de form.

Please tell me your secret.
 
En waar staat die code?
Zolang er geen Unload van de form is uitgevoerd blijft deze op het scherm staan, zonder enige wijziging aan de ingevulde velden.
 
Ingrid,

Ik heb me helemaal blind gestaard. Het enige wat ik veranderd heb is de sub's van de comboboxen weggehaald. Daarna deed hij het perfect. De code stond net als bij jou bij de command sub van de ok button. Waarom hij het nou wel doet weet ik niet. Ik heb er geen verklaring voor. Misschien jij wel.

Maar wederom heb je de oplossing gegeven en ben je dus weer GEWELDIG.

Geef je ook cursussen ;o)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan