To dość często pojawiające się pytanie, więc odpowiedź upubliczniam :). Załóżmy, że podformularz nazywa się fmPozycjeFaktur i zawiera pola tekstowe TowarID i Ilosc. Procedura dodania rekordu na takim podformularzu wyglądałaby tak:
Me.fmPozycjeFaktur.SetFocus DoCmd.GoToRecord , , acNewRec Me.fmPozycjeFaktur.Form.TowarID = 5 Me.fmPozycjeFaktur.Form.Ilosc = 2 |
Troszkę nie działa to tak jak bym chciał. Nie widzi po prostu pól podformularza z poziomu VBA
Pola podformularza są jak najbardziej widoczne z poziomu vba. Trzeba tylko inaczej się do nich dostać.
Nie wystarczy wpisać me.podformularz.pole1
Poprawnym odwołaniem do pola jest:
forms!fmglowny!podformularz!pole1- potem można po kropce dopisywać metody itp.
fmglowny to nazwa naszego formularza
a podformularz to nazwa podformularza.
Me.Podformularz.Pole wystarczy, jeżeli jesteśmy w module formularza, a zazwyczaj jesteśmy. Natomiast oczywiście gdy piszemy w module standardowym to obiektu Me w ogóle nie ma i trzeba wołać z grubsza tak jak napisałeś
w temacie polecam stronkę:
http://access.mvps.org/access/forms/frm0031.htm
podformularz musi być określony jako form, ponieważ nie ma klasy podformularzy o ile pamiętam, więc działają zasady z nazwami „parentów”.