2016-03-31 8 views
0

私は2つのサブフォーム(3つのテーブル、合計)を持つフォームを持っています。レコードを一致させるためにボタンを使用してフィルタを適用します。

テーブル: PI(患者情報)
照会
レポート

上部のフォームが表示されPI、次いで照会及び報告サブフォームとしては

enter image description here

(下のスクリーンショットを参照します)現在のビューでは、患者#1(1件の紹介が利用可能)のすべての紹介が表示され、紹介に関連付けられているかどうかに関係なく、すべてのレポートが表示されます。ボタンを作成してクリックすると、現在表示されているReferralIDと一致するレポートのみを表示するフィルタが適用されます。

答えて

1

サブフォームと親フォームのコントロールとプロパティを参照する方法については、this pageを参照してください。フィルタを適用するためのボタンは、トグルボタン、フィルタを適用するためにクリックするか、または上に移動して削除する必要があります。あなたのケースでは

、サブtbtnFilterという名前のトグルボタンをフォーム、およびフォームのOnCurrentイベントで、レポートフィルタを変更紹介に追加:フィルタを適用したり削除tbtnFilter OnClick Event

Me.Parent!Reports.Form.Filter = "ReferralsID = " & CStr(Me.ReferralsID) 
Me.Parent!Reports.Form.FilterOn = Me.tbtnFilter 

、とするとダウン(TRUE)をするときまで(FALSE)、「フィルタの適用」、および「フィルタの削除」することToggleButton.Caption Propertyを変更します。

Me.Parent!Reports.Form.FilterOn = Me.tbtnFilter 
Me.tbtnFilter.Caption = IIf(Me.tbtnFilter, "Remove", "Apply") & " Filter" 
+0

@Chris Rayにこの回答がありますか? Iv'eももう一つの答えを編集しました。 – marlan

+0

したがって、上記のコードをコマンドボタンのOn Clickイベントに挿入しました。内容:メインフォームが読み込まれると、レポートフォームにすべてのレポートが表示されます。次に、ボタンをクリックすると、その参照(YAY)のレポートのみが表示されますが、同じ患者の別のREFERRALにナビゲートすると、レポートが自動的にロードされないため、コマンドボタンをもう一度クリックする必要があります。 –

+0

@Chrisあなたが別のREFERRALにナビゲートするたびにコードが実行されるはずです。フィルタは変更する必要があります。 [レコードナビゲーションのイベントはOnCurrent](https://msdn.microsoft.com/en-us/library/office/ff193159.aspx)イベントです。これはフォームイベントです。 – marlan

0

PIフォームのSubFormコントロールには、LinkChildFieldsプロパティとLinkMasterFieldsプロパティがあります。

編集: [参照]サブフォームのサブフォームとしてレポートフォームを作成できます。 Iv'eは数回それをやった、それはうまく動作します。フォームデザインではちょっとした制限があります。

MSDN Article on SubForm.LinkChildFields Property

フォームでどのようにのMicrosoft Access リンクレコードを指定するには、一緒に( 親フィールドプロパティと一緒に)LinkChildFieldsプロパティを使用することができます...サブフォーム内のレコードに... これらのプロパティが設定されている場合、メインフォームの新しいレコードに変更すると、サブフォームの
関連レコードが自動的に更新されます。

+0

限り、私は承知しているとして、これはのオプションを与えるものではありませんリンクされたリポジトリとリンクされていないリポジトリの両方を見るrts。 ReferralIDが一致するレポートのみを表示します –

+0

この回答をお詫び申し上げます。Iv'eはスクリーンショットの表示に問題がありました...あなたの質問をよりよく理解して、新しい回答を投稿しています。 – marlan

関連する問題