Fout melding in VBA code op een andere PC

RobertJB66

Gebruiker
Lid geworden
2 feb 2022
Berichten
219
Op mijn eigen PC heb ik een Access tool/prog gemaakt. Hier werkt het zoals bedoeld.

Nu plaats ik dezelfde Access tool/prog op een andere PC en krijg ik een foutmelding op een requery van een child form.

Me.[EECQ_Sub].Form.Requery '<< op deze lijn krijg ik de fout melding.

Code:
        Set db = CurrentDb
        Set qdf = db.QueryDefs("EECQ_PTQ")
            qdf.SQL = "SELECT Top 500 * FROM EECQ_View ORDER By PRID Desc"
            Me.[EECQ_Sub].Form.Requery
        Set qdf = Nothing

Bij een voorgaande versie van deze Access tool/prog gaf dit geen probleem.
Ook als ik de [] weg haal werkt het op de andere PC niet op mijn eigen blijft het gewoon werken. Ik heb ook geen idee meer waarom ik de [] er om gezet heb.

Code:
        Set db = CurrentDb
        Set qdf = db.QueryDefs("EECQ_PTQ")
            qdf.SQL = "SELECT Top 500 * FROM EECQ_View ORDER By PRID Desc"
            Me.EECQ_Sub.Form.Requery
        Set qdf = Nothing

De foutmelding is: Run-time error 2455 invalid reference to property form/report.

Wat kan hier het probleem van zijn?
 
De rechte haken (of (), waarvoor hetzelfde geldt) heb je niet nodig, tenzij je naar objecten verwijst waar spaties in zitten. Net zo min overigens als de regel "Set qdf = Nothing", die doet ook helemaal niets. Kun je dus ook weglaten.
De reden van je probleem is op basis van de code niet te zeggen, maar ik vermoed, want dat is de meest voorkomende, dat er op de tweede pc andere bibliotheken geladen zijn, of ontbreken, dan in jouw productie omgeving. Dat levert vaak foutmeldingen op die niets met de uitgevoerde code te maken hebben.

Wat je eens zou kunnen doen op de tweede pc, is om daarop de db te compileren vanuit het VBA venster. Dat levert dan geheid regels op waar een programmaregel niet werkt. Spoor daar de oorzaak van op, en ga door tot de hele db geen foutmeldingen meer geeft. Vermoedelijk is je probleem dan opgelost.
 
Ik om hier toch nog even op terug.

Als een form in een ander form zit moet dan Me.subformnaam gebruikt worden of is het genoeg om alleen de subformnaam te gebruiken met de functie?

Me.EECQ_Sub.Form.Requery
of
EECQ_Sub.Form.Requery

het lijk beide te werken :confused:
 
Me gebruik je om te refereren naar objecten die op het bronobject staan. Dus op een formulier heb je objecten zoals tekstvakken, en met Me.Tekstvak kun je daar dan naar verwijzen. Dat geldt dus ook voor subformulieren. Daar moet je dan wel .Form achter zetten, om het type object te bepalen. Maar dat doe je al :).
 
Terug
Bovenaan Onderaan