'The expression you entered requires the control to be in the active window'?

Status
Niet open voor verdere reacties.

VB noob

Gebruiker
Lid geworden
11 feb 2009
Berichten
78
Ik heb een formulier 'A' welke waardes doorstuurt (met een 'After Update' event) naar formulier 'B', waar ze ingvuld worden met een 'On Load' event. Dit werkt perfect.
In een ander formulier, formulier 'C' gebruik ik een code die een aantal waardes van het vorige record als default waarde invult. De code staat in een module en wordt aageroepen met een 'Before Insert' event op een manier zodat de waardes niet gelijk ingevuld worden, maar wel zodra je iets typt in het eerste veld van het formulier. De code hiervoor heb ik hier gevonden. Ook dit werkt perfect. Als je het formlier opent voor data entry dan zijn er geen waardes, heb je een eerste record ingevoerd en ga je naar een nieuw record binnen het formulier dan vult hij een stel standaardwaardes in in het nieuw record op basis van het zojuist ingevulde record.

Nu wilde ik beide dingen combineren in formulier 'B' maar dan krijg ik de melding:

'The expression you entered requires the control to be in the active window'.

Volgens mij is dat error nummer 2474, zie hier.

Het heeft verder geen invloed op de werking van het formulier. De waardes worden nog steeds van formulier 'A' naar formulier 'B' doorgestuurd. En nadat je een eerste record hebt ingevuld en naar een nieuw record gaat worden er in een aantal velden default waardes ingevuld op basis van je zojuist ingevulde record.

Dus ik weet niet zo goed waar de foutmelding naar verwijst. En omdat alles werkt dacht ik dat ik de foutmelding kon verbergen.

Wat ik probeerde met de volgende code:

Code:
Private Sub AnimalGroup_AfterUpdate()
   On Error GoTo Error_trap
  
' Code  

Exit Sub
Error_trap:
If Err.Number = 2474 Then
MsgBox Err.Number  'Om te kijken of het ook echt foutmelding 2474 is'
    End If

End Sub

Dit heb ik geprobeerd in de 'After Update' van formulier 'A' en in de 'On Load' en 'Before Insert' in formulier 'B'. Maar de melding blijft verschijnen.
Of moet ik dan toch de focus naar de juiste control zetten? Maar ik heb geen idee hoe, en naar welke control.
 
Het is misschien handiger om er een voorbeeldje bij te doen; omdat je zo'n specifiek probleem hebt is het lastig om dat na te bootsen.
 
Hij gaat fout op deze regel:
Code:
    strActiveControl = frm.ActiveControl.Name

En dat snap ik wel, want je laat code uitvoeren op het moment dat er nog niks actief is. Ik zou het (voorlopig) even zo oplossen:

Code:
    On Error Resume Next
    strForm = frm.Name
    strActiveControl = frm.ActiveControl.Name

Dan kun je eens rustig uitzoeken of je later nog in de problemen komt of niet.
 
Thanks! Werkt goed, geen foutmelding meer en de functionaliteit werkt gewoon nog. Ik zal de status op 'opgelost' zetten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan