Access Requery sluiten formulier

Status
Niet open voor verdere reacties.

MJJBROEKHUI

Gebruiker
Lid geworden
6 jun 2001
Berichten
175
In Access heb ik database gemaakt waar ik orders kan invoeren.

Als ik in het orderformulier klik op "toevoegen klant" verschijnt er een popup formulier waar ik een nieuwe klant kan invoeren. Als ik dit formulier sluit wordt er een requery op het orderformulier gedraaid. en ga ik terug naar het orderformulier. Ik kan dire deze nieuwe klant aanklikken in pulldown menu.

Tot zover geen probleem. Ditzelfde popup formulier wil ook gebruiken bij andere formulieren. Als ik het popup formulier sluit komen zonder dat het orderformulier openstaat komt natuurlijk foutmelding als "kan orderformulier niet vinden".

Nu wil ik in VBA een volgende commando maken.

Als orderformulier open is sluit deze dan. Als deze niet open is doe niets.

Wie kan mij helpen?
 
Als je een formulier opent dan gebruik je hiervoor de openform methode.
Een van de parameters van deze methode is de openargs (argumentenopening in het nederlands, maar dat vind ik niet klinken).
Hierin kun je zaken meegeven die je dan kunt gebruiken in de code achter het aangeroepen formulier.
In de access help kun je hierover meer informatie vinden.

Dit is in Access de manier om dat soort zaken netjes af te handelen.
 
Maak eerst een standaardmodule met de functie "IsOpen" zoals hieronder:


Public Function IsOpen(ByVal strFormname As String) As Boolean
Const conDesignView = 0
Const conObjStateClosed = 0
IsOpen = False
If SysCmd(acSysCmdGetObjectState, acForm, strFormname) <> conObjStateClosed Then

If Forms(strFormname).CurrentView <> conDesignView Then
IsOpen = True
End If
End If
End Function

Daarna kunt U in al uw formulieren deze functie oproepen b.v

If IsOpen("UwFrm")
docmd.close acForm, "UwFrm"
End If

enz...enz...

Scarie
 
scarie, bedankt voor je antwoord. Ik heb voor de toekomst zeker iets aan je antwoord, maar dit is geen antwoord op mijn vraag. Misschien heb ik niet goed gesteld.

Ik open een pop up formulier en voer de NAW gegevens in. Als ik dit gedaan heb ik sluit het formulier. In eerste instantie gebruikte ik dit popup een orderformulier. Als ik het pop formulier sluit start ik een requery op in het orderformulier dat op dat moment eveneens openstaat. Nu wil ik dit popup formulier ook gebruiken voor een ander hoofdformulier. Het orderformulier staat dan niet open, maar ik popup sluit wordt er wel verwezen naar de requery.

Dus eigenlijk zoek ik een code waarin staat.

Als formulier niet open is doe niets, is deze wel open voer requery uit.
 
Oude antwoorden in nieuwe zakken

Lange tijd geleden heb ik het volgende antwoord gekregen op een soortgelijke vraag. Ik wilde een refresh uitvoeren als een formulier werd aangeroepen vanaf een ander formulier, maar ditzelfde formulier moest ook vanuit het schakelbord benaderd kunnen worden (zonder refresh bij sluiten). Antwoord was toen:

In plaats hiervan kun je ook de volgende code opnemen:
//
On Error Resume Next
forms!frmOrder!fldKeuzelijst.requery
On error goto 0
//
Wordt het form gevonden dan wordt de query uitgevoerd, wordt het form niet gevonden dan gaat hij automatisch naar de volgende code
Niet de schoonheidsprijs, maar vaak werkt het wel.
De goto 0 zorgt ervoor dat de eventueel volgende foutmeldingen weer gewoon afgehandeld worden

Dit antwoord werkt nog steeds perfect. Zelf even de naam en veld van je formulier wijzigen en klaar. Suc7
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan