AutoKeys Access 97

Status
Niet open voor verdere reacties.

pmae2487

Gebruiker
Lid geworden
10 mrt 2002
Berichten
172
Hoe kan aan een autokeys macro een voorwaarde gekoppeld worden zodat bij indrukken van toetsencombinatie CTRL+F een eigen formulier geopend wordt wanneer dit gestart wordt vanaf een formulier en het Access ZoekDialoogvenster wordt geopend wanneer er geen formulier de focus heeft.

Alvast bedankt
 
Om deze controle uit te kunnen voeren heb je een stukje code nodig. Wat je dus moet doen is de macro laten verwijzen naar de code die je uitgevoerd wilt hebben. En dan natuurlijk de check in de code bouwen.


Suc6,
 
Bedankt voor de reactie, zover was ik ook al en het is al voor 80% gelukt maar nog niet volledig opgelost, alles werkt perfect met uizondering van subformulieren. Het gewenste formulier wordt wel geopend maar de code van het eigen dialoogvenster doet zijn werk op het masterformulier ipv op het op dat moment aktieve subformulier.

Het betreft het docmd.findfirst of docmd.findnext commando dat op een achterliggend master of subformulier moet worden uitgevoerd. Ik zou dus moeten kunnen bepalen of cursor op een Master of subformulier staat en dan verwijzen naar dat formulier om één van bovenstaande opdrachten uit te voeren.

Mvg
 
Wat is de code die je tot op dit moment hebt? Mischien dat dat een mooi startpunt is voor een oplossing.


Grtz,
 
Heb ik op dit moment niet bij mij, ik zal deze morgen eens op het forum zetten

Mvg
 
OK hier is ie dan

Als je zoekt naar Ada* dan moet je 4 gegevens vinden 2 in het hoofdformulier en 2 in het subformulier.

Gestart van het hoofdformulier vind je er 2 in het hoofdformulier en geen in het subformulier

Gestart van het subformulier worden soms de 2 in het subformulier gevonden maar meestal niets

Ik zou ook graag de boodschap niet gevonden weergeven als dit het geval is.
 

Bijlagen

De regel "Screen.ActiveForm.Name" Levert je altijd het hoofdformulier op.

Het eerste dat je moet doen in je code is kijken waar je op je form zit en hiernaar verwijzen. Dit kun je doen met de volgende regel:

Code:
CurrentForm = Screen.ActiveControl.Parent.Name

Hiermee krijg je de naam van het formulier of subformulier waarop het actieve control staat.


Grtz,
 
Screen.activeForm.name verwijst inderdaad altijd naar het hoofdformulier maar dat is ook de bedoeling, dit dient enkel en alleen maar om dit formulier opnieuw de focus te kunnen geven zodat de zoekopdracht.... op dat formulier kan uitgevoerd worden.

Ik heb al betere resultaten door de parameter zoeken zoals weergeven op waar te zetten en findnext te vervangen door findrecord. Ik vind nog niet alles maar het werkt precies wel iets meer zoals het Access Dialoogvenster.

Als ik nu nog kun uitvissen hoe ik kan bepalen of het gezochte al dan niet gevonden is kan ik de cursor verplaatsen naar het volgende (sub)formulier waarop moet gezocht worden tot wanneer het hoofd- en alle subformulieren overlopen zijn. Er verschijnt echter geen foutmelding als er niets gevonden is de cursor blijft gewoon op de laatst gevonden of beginrecord staan.

Dit laatste realiseren is niet zo moeilijk het enige probleem is dat bij docmd.findrecord geen melding komt wanneer het gezochte niet gevonden is

Mvg
 
zaak voor 95% opgelost zou alleen graag nog een melding meegeven als het gegeven niet gevonden wordt? Hoe krijg je het resultaat van een docmd.find.record.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan