controleren of formulier op achtergrond open staat?

Status
Niet open voor verdere reacties.

spawn666

Gebruiker
Lid geworden
16 mei 2004
Berichten
117
Goeie morgen, :D

Kan iemand me zeggen hoe ik in een macro een controle kan laten uitvoeren of er een ander formulier op de achtergrond draait?
Het andere formulier is namelijk nodig om informatie uit op de vragen. Als het formulier niet op de achtergrond draait krijg ik een foutmelding van de macro....en dat wil ik voorkomen.
Als de macro ziet dat het andere formulier niet open staat wil ik graag dat i of een melding geeft dat het formulier niet open staat of dat hij zelf het formulier opent.

weet iemand hoe ik dit voor elkaar krijg?

thanks :thumb:
 
En daar heb je nu net het GROOTSTE nadeel van macro's te pakken ;) Je kunt er geen foutafhandeling in opnemen. En daarom gebruik ik ze (op 2 uitzonderingen na) nooit.

In VBA kun je de foutmelding die je krijgt prachtig afvangen en de melding geven die je wilt. Als je de bestaande macro converteert naar VBA heb je direct al de optie om foutafhandeling toe te voegen. Speur het nummer van de melding op die je wil afvangen en geef als dat het geval is de gewenste foutmelding.


Grtz,
 
mmm Macro's red ik nog een klein beetje....expreson builder wordt als iets lastiger...en VBA probeer ik al zo veel mogelijk te ontwijken. :( Geen idee hoe ik de macro die ik heb zou kunnen converteren ...laat staan dat ik weet hoe ik de controle maak of een ander
form actief is.. :confused: ..heb je misschien iets om me een eindje opweg te helpen? :rolleyes:
 
Je doel kan je volgens mij alleen bereiken in VBA en dat kan dan door in de systeem tabbellen uit te lezen of het formulier open is.

So meet your challenge and take the dip.
 
je hoeft helemaal geen systeemtabellen uit te lezen om te bepalen of een formulier geopend. In de voorbeelddatabase 'northwind' kun je een functie 'isloaded' vinden, die teruggeeft of een formulier wel of niet geladen is.
 
Hey,

Je moet inderdaag via VBA werken en een functie maken.
De functie IsLoaded.

Die kan je importeren uit Noorderwind, uit de voorbeeldmodule.


Daarmee lukt het zeer zeker!
Succes


Kristof
 
En een dergelijke functie is heel simpel:

Public Function IsOpen(mstrFormName As String) As Boolean
'returns True if form is open
If SysCmd(acSysCmdGetObjectState, acForm, mstrFormName) <> 0 Then
IsOpen = True
Else
IsOpen = False
End If
End Function

De functie kun je dan overal aanroepen:
If IsOpen("JouwFormulierNaam") = True Then
'Doe hier alles wat je leuk vindt"
end if
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan