Access 2013 Navigatieformulier

Status
Niet open voor verdere reacties.

BertRoo

Gebruiker
Lid geworden
3 apr 2011
Berichten
6
Hoi allemaal,

Al een paar dagen te gezocht en geprobeerd te hebben ben ik er nog steeds niet uit mijn probleem met het navigatieformulier(en).

Ik heb een database met een formulier (Dashboard) welke wordt geopend bij het openen van de database.
Op dit formulier zit een knop Algemene Instellingen, het overige op het formulier heb ik verwijderd i.v.m. met mijn probleem.
Als ik op de knop Algemene Instellingen klik wordt er een navigatieformulier Algemene Instellingen (navInstellingen) geopend met daarop twee knoppen n.l. Jaargegevens en Bankrekeningen. Als ik op de knop bankrekeningen klik wordt het navigatiesubformulier met de bankrekeningen zichtbaar. Ik kan daarin de bankrekeningen controleren, wijzigen d.m.v een knop en toevoegen d.m.v. een knop.
Als ik bijvoorbeeld een bankrekening wil wijzigen ga ik naar het desbetreffende record en klik vervolgens op de knop wijzigen/bewerken er wordt dan een popup formulier geopend (navBankWijzigen) op het juiste record. Als ik nu een wijziging heb aangebracht en vervolgens op de knop opslaan klik dan sluit het popup formulier en wordt vervolgens het navigatieformulier weer zichtbaar met het navigatiesubformulier Jaargegevens, en hier zit nu mijn probleem.

Wat ik probeer te bewerkstelligen is dat het navigatieformulier wordt geopend waarin het navigatiesubformulier Bankrekening wordt getoond met de gewijzigde record.

Ik heb de database bijgevoegd met alle niet benodigde gegevens verwijderd.

Wie o wie heeft hier een oplossing voor.
 

Bijlagen

Je gebruikt een in mijn ogen nogal omslachtige wijze van gegevens bewerken, maar als je 4 formulieren kunt gebruiken, waarom zou je het dan met 1 of 2 doen :) . Maar als je je eigen systeem wilt gebruiken, dan moet je deze aanpassingen maken.

Code:
    DoCmd.OpenForm "navBankwijzigen", , , "BankID=" & Me.BankID, acFormEdit, acDialog
    Me.Visible = False
EN dus niet:
Code:
        DoCmd.Close acForm, Me.Form.Name, acSaveNo
Sowieso is de optie acSaveNo volslagen nutteloos, want je bewerkt je formulier niet. Je opent hem namelijk in gegevensweergave en niet in ontwerpweergave. Dus wat je ook doet: je formulier verandert nooit. Je kunt net zo goed acSavePrompt of acSaveYes gebruiken. Al wordt je met Promt nog volkomen overbodig dus met een vraag opgezadeld waar je dan een antwoord op moet geven dat nergens toe doet. Een beetje vergelijkbaar dus met stemmen ;).
 
Beste Michel,

De code die jij adviseerde werkte bij mij niet.
Formulier "navBankWijzigen" wordt geopend vanuit een subformulier en dan werkt Me.Visible=False niet.

Code:
 DoCmd.OpenForm "navBankwijzigen", , , "BankID=" & Me.BankID, acFormEdit, acDialog
    Me.Visible = False

Ik heb de onderstaande code gebruikt op het formulier "navBankWijzigen" te openen.
Code:
Private Sub cmdChange_Click()
Forms![navInstellingen].Visible = False
DoCmd.OpenForm "navBankWijzigen", , , "BankID=" & Me.BankID, acFormEdit, acWindowNormal
End Sub

En om het formulier op te slaan en sluiten (knop cmdSave).
Code:
Private Sub cmdSave_Click()
DoCmd.Close acForm, "navBankwijzigen"
Forms![navInstellingen].Visible = True
End Sub

En om het formulier te sluiten zonder op te slaan.
Code:
Private Sub cmdClose_Click()
Me.Undo
DoCmd.Close acForm, "navBankwijzigen"
Forms![navInstellingen].Visible = True
End Sub

Bedankt dat je mij de goede richtinging hebt gestuurd.
Ik heb de aangepaste database bijgevoegd en zal mijn vraag als opgelost zetten.
 

Bijlagen

Laatst bewerkt:
Kleine aanvulling nog: je hebt gelijk dat mijn variant van Me.Visible niet werkt op een navigatieformulier. Je moet in dit geval 1 niveau hoger onzichtbaar maken:
Code:
    Me.Parent.Visible = False
Deze code is een stuk flexibeler in het gebruik, want je hebt de naam van het formulier niet nodig. Dus daar kun je ook nooit fouten mee maken. Overigens zag ik ook dat je adDialog niet gebruikt, en dat zou ik in dit geval toch echt wel doen; zodra je een formulier als popup gebruikt, wil je meestal niet dat de gebruiker ergens anders op klikt dan dat popup formulier. Dus dat wil je dan ook dwingend op het scherm houden.
 
Nogmaals hartstikke bedank Michel.:thumb:

Je bent nooit te oud om te leren.:d
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan