validatie na sluiten formulier met knop formulier sluiten

Status
Niet open voor verdere reacties.

i nova

Gebruiker
Lid geworden
22 dec 2010
Berichten
15
In access heb ik een formulier gemaakt om een tabel te vullen.
In de tabel zijn enkele velden vereist (ingesteld bij tabellen)

Als in het formulier bij een nieuw record niet alle verplichte velden gevuld zijn en ik klik op het kruisje om het formulier te sluiten, krijg ik netjes een fout melding en de vraag om alsnog alles in te vullen of om af te sluiten zonder op te slaan.

In mijn formulier heb ik echter de knop aflsuiten gemaakt (het deurtje)
Als ik op deze knop druk terwijl niet alle verplichte velden gevuld zijn, sluit het formulier af zonder de nieuwe record op te slaan. Ik krijg dan ook geen waarschuwing.
Ik wil dezelfde waarschuwing krijgen als het 'kruisje' Hoe moet dat?
 
Welke code heb je nu onder de knop staan?
 
Ik heb alles gecopieerd vanuit het Microsoft visual basic scherm
(De tekst bij de knop zet access er zelf neer via de wizzard knoppen)

**************

Option Compare Database

Private Sub Form_Open(Cancel As Integer)
DoCmd.GoToRecord , , acNewRec
End Sub


Private Sub Knop9_Click()
On Error GoTo Err_Knop9_Click


DoCmd.Close

Exit_Knop9_Click:
Exit Sub

Err_Knop9_Click:
MsgBox Err.Description
Resume Exit_Knop9_Click

End Sub
 
Je kan dit eens proberen:
Code:
Private Sub cmdSluiten_Click()
On Error GoTo Err_cmdSluiten_Click
If Me.Dirty = True Then
    If Me.Tekstvak1 = "" Then
        MsgBox "Het tekstvak ### is leeg. Dat moet je eerst invullen."
        Exit Sub
    End If
    If Me.Tekstvak2 = "" Then
        MsgBox "Het tekstvak ### is leeg. Dat moet je eerst invullen."
        Exit Sub
    End If
Else
    DoCmd.Close acForm, Me.Form.Name
End If
Exit Sub
Err_cmdSluiten_Click:
    MsgBox Err.Description
    
End Sub
Zo kun je voor elk verplicht veld een aparte melding maken als het niet is ingevuld.
 
Bedankt voor de code,
alleen weet ik niet precies hoe ik deze code moet combineren met de code van de knop met het deurtje. (zoals je begrijpt heb ik niet zo veel kaas gegeten vba codes)

Ik heb het database-je bijgevoegd.
Ik wil graag dat het formulier "nieuwe behandeling" gesloten wordt met de knop van het deurtje, en dat hij pas echt afsluit (en saved) als alle verplichte velden (datum en free tekst) gevuld zijn.

Zou je jouw code op de juiste plek kunnen plakken?

Je zou me erg helpen, alvast heel erg bedankt!
 

Bijlagen

i nova,

Hieronder de bijlage met de code bij de knop sluiten.
Voor de goede orde:
Het veld Klant_ID krijgt bij nieuwe records automatisch de standaardwaarde 0.
Je kunt dan niet testen op [= ""].

Verder is het gebruikelijk dat je omschrijvende namen gebruikt voor alle besturingselementen, dus heb ik de knopnaam naar cmdSluit genoemd.

Bekijk bijlage ValidatieVoorSluiten.zip

Groeten, Paul
 
Door keuzelijsten te gebruiken in je tabellen maak je het jezelf moeilijker dan noodzakelijk is. Keuzelijsten horen thuis op formulieren, niet in tabellen. Verder lijkt het logisch om, als je een patient hebt geselecteerd, het patientnummer mee te nemen naar het behandelformulier, dat dan uiteraard ook geopend mag worden in toevoegmodus. Kijk maar eens in de bijlage, waarin dat is gerealiseerd.
 

Bijlagen

Als eerste erg bedankt voor je hulp, alleen werkt het bij mij niet helemaal.
Als ik het formulier zoek klant open dan kan ik wel klanten selecteren, maar om de een of andere reden veranderen de gegevens niet op de 2 subformulieren.

Waarschijnlijk doe ik iets niet goed.....
 
Je 'zoek' formulier is ook geen zoekformulier, maar een formulier dat is gebaseerd op een tabel. Om er een zoekformulier van te maken, moet je een keuzelijst gebruiken in de koptekst (bijvoorbeeld). Zoals in bijgaand voorbeeld.
 

Bijlagen

hmmmm,
Ik merk dat ik nog heel veel moet leren.

Dit formulier was puur bedoeld als een opzoek formulier, vanuit dit formulier zou je alleen patienten moeten kunnen opvragen en in een oogopzicht alle behandelingen zien.

Daarna heb je 3 opties:
- bestaande klant, nieuwe behandeling invoeren (dan moet je via knop naar een ander formulier gaan)
- Nieuwe klant toevoegen (dan moet je via knop naar een ander formulier gaan)
- Bestaande klant, adres wijziging (dan moet je via knop naar een ander formulier gaan)

In het opzoek formulier mag je dus nooit iets toevoegen, wijzigen of verwijderen, maar alleen opzoeken en bekijken.

Het valt niet mee, maar ondanks alle frustraties is het wel leuk om beetje bij beetje te ontdekken. Super fijn dat deze site mij verder helpt, omdat ik weinig mensen met kennis van access ken.
 
Als je alleen een opzoekformulier wilt maken, dan kun je het huidige formulier wel gebruiken, maar dan zet je de opties <Bewerken toestaan>, <Verwijderen toestaan> en <Toevoegen toestaan> op Nee. Als je dan ook de Navigatieknoppen uit zet, kun je alleen bladeren door de records.
Een zelfstandig zoekformulier maak je door het formulier niet te koppelen aan een tabel. In dat geval heb je uiteraard ook geen koppeling meer met de subformulieren, dus die moet je dan activeren vanuit VBA.
 
Ik was er inderdaad achter dat ik het zoekformulier aan een tabel moest koppelen, om de subformulieren te laten werken. VBA codes vind ik nog erg moeilijk, dus deze probeer ik zo veel mogelijk te vermijden.

Ik liep echter tegen het probleem aan, dat als ik <Bewerken Toestaan> op nee zet, ik geen records kan selecteren (als ik op het pijltje in de lijst druk komt de lijst wel tevoorschijn, maar ik kan niets selecteren)
 
Klopt; was iets te enthousiast ingeklopt! Je kunt <Bewerken Toestaan>dus op Ja laten staan, en de keuzelijst uitschakelen. Dan kun je alsnog niks veranderen op het formulier. En dat is uiteindelijk toch wat je wilt.
 
Ik ben er bijna....
Met hulp van Octafish en PaccessB ben ik een heel eind op weg.

Nog even kort het doel van de database:

- Opzoek formulier "Zoek klant" In het opzoek formulier mag je niets toevoegen, wijzigen of verwijderen, maar alleen opzoeken en bekijken

Daarna heb je 3 opties:
- Bij een bestaande klant een nieuwe behandeling invoeren (moet je via knop naar "formulier Nieuwe behandeling" gaan)
- Een nieuwe klant toevoegen (moet je via knop naar "formulier ander klant" gaan)
- Bij een bestaande klant, adres wijziging (moet je via knop naar "formulier adres wijziging"gaan)

Dit alles is bijna gelukt
Echter krijg ik een fout melding als ik de postcode invoer bij formulier nieuwe klant en formulier adres wijziging.
Hoe kan ik deze fout oplossen?
(Let op de VBA codes mbt invoeren postcode komen van volgend topic http://www.helpmij.nl/forum/showthread.php/589727-Adres-zoeken-bij-postcode )
zie database Bekijk bijlage Fout bij postcode nieuwe klant en wijzig klant.zip

Wederom erg bedankt voor de hulp
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan