Paweł Pożerski

Paweł Pożerski Programista VBA,
Firma finansowa

Temat: problem z połączeniem podformularzy

Mam jeden główny formularz, w którym znajduje się parę pod-formularzy. Chciałbym, żeby w momencie gdy kliknę dany rekord w pod-formularzu z klientami w pozostałych pod-formularzach pojawiły się dane związane tylko z tym klientem. Relacje między tabelami mam ustalone. Jeśli trzeba będzie przesłać plik access oraz szkielet bazy danych to proszę pisać priv to wyślę.

Temat: problem z połączeniem podformularzy

Istnieją dwie możliwości na automatyczne odświeżenie zawartości podformualrzy:
1. Z wykorzystaniem pola nadrzędnego i podrzędnego z formatki Właściwości w zakładce Dane bodajże.
2. Z wykorzystaniem VBA, czyli po wybraniu\zmianie rekordu w formularzu głównym, poprzez wcześniej przygotowany sql oparty na kryteriach pochodzących z formularza głównego, przypisujesz nowy recordset dla podformularza, który następnie odświeżasz.

Pozdrawiam
Paweł Pożerski

Paweł Pożerski Programista VBA,
Firma finansowa

Temat: problem z połączeniem podformularzy

Dziękuję za szybką odpowiedź. Pewnie coś źle robię, ale po wybraniu rekordu w pierwszym pod-formularzu w drugim pod-formularzu wybiera mi rekord z id z rekordem pierwszego pod-formularza, ale za pomocą menu pod-formularza (czytaj strzałki) mogę przejść do rekordów, które powiązane są z innym id z pierwszego pod-formularza, a chciałbym widzieć tylko te rekordy, które powiązane są z konkretnym id pierwszego pod-formularza.

Temat: problem z połączeniem podformularzy

https://1drv.ms/u/s!AttmjDiVAHWDsj3-aVyqR17_qK2X?e=5m9nUI

Załączyłem przykład jak wykorzystać pole nadrzędnie i zależne ale to działa fajnie w przypadku formularza głównego i jak masz np. kilka podformularzy z tym samym ID z formularza głównego.

Jeżeli chcesz wykorzystać jakiej kaskadowe przejścia pomiędzy podformularzami to niestety lub stety trzeba wykorzystać sql i zmienną publiczną/globalną do przechowywania tego właśnie sql'a.

Reasumując:
Dla zdarzenia Form_Current w jakimś podformularzu wysyłasz sql do zmiennej i przpisujesz go do podformularza w którym mają być wyświetlone dane.
Wykorzystasz wtedy:
' To wstawiasz w jakimś module
Global g_sql as String

'To w podformularzu w którym wybierasz kryterium
g_sql="SELECT * FROM jakasTabela WHERE ID=" & me.NazwaFormantuzID & ";"

'A to z kolei w formularzu głównym
Me.NazwaPodformularza.Form.Recordset=g_sql
Me.NazwaPodformularza.Refresh

Pozdrawiam
Paweł Pożerski

Paweł Pożerski Programista VBA,
Firma finansowa

Temat: problem z połączeniem podformularzy

Dziękuję za odpowiedź. Teraz wszystko jasne.



Wyślij zaproszenie do