Nie jestem ekspertem ds. Dostępu i mam (mam nadzieję!) Proste pytanie ...Jak odwołać się do bieżącego formularza w wyrażeniu w programie Microsoft Access?
Mam formularz z wieloma zapisami. W niektórych polach tekstowych właśnie przedstawiam wartości z bazowej tabeli - więc są one powiązane z odpowiednimi polami.
Jednak niektóre pola tekstowe powinny zawierać wartości obliczone. Niektóre obliczenia są skomplikowane i obejmują wiele pól z tabeli. Piszę obliczenia jako funkcję VBA. Mogę wprowadzić coś takiego jak "Źródło kontroli":
=MyFunction([Field1], [Field2], [Field3] ...)
Ale nie chcę wyświetlać dziesiątek pól w wywołaniu funkcji. Zamiast tego chcę wysłać cały formularz (lub bieżący rekord) jako parametr, i niech funkcja odwoła się do pól, których potrzebuje. Mogę to zrobić tak:
=MyFunction([Forms]![MyForm])
Ale nie podoba mi się nazwa formularza w zaproszeniu. Czy nie ma sposobu, aby wysłać "bieżącą formę" jako argument funkcji? W języku VBA wystarczy użyć słowa kluczowego "Ja", np. "Me! [Field1]". Ale wydaje się, że "Ja" nie jest akceptowane w wyrażeniu.
Czy istnieje jakiś inny sposób odniesienia do bieżącego formularza w wyrażeniu?
(To jest pytanie kosmetyczne, wiem, ale to nie jest dobre programowanie do użycia "[Form]! [MyForm]". Później kopiujesz kontrolki do innej formy i zapominasz zmienić nazwę w wyrażeniu. .)
Wdzięczny za pomoc! :-)
/Anders
'Screen.ActiveForm.Name' mogą być wykorzystywane w funkcji globalnej! Dziękuję za to! – bgmCoder
Myślę, że powinno to być zaznaczone jako odpowiedź, ponieważ będzie działało, aby osiągnąć cel w znacznie większej liczbie sytuacji niż podanie nazwy postaci jako parametru i wyeliminuje potrzebę przekazania parametru w ogóle - nawet starszego, mniej mylącego kodu. Kudos do Philippe Grondier! To rozwiązało problem, który zajmowałem bardzo starannie. – DRC