長い複数項目フォームがある場合は、1 つのアイテムに関する詳細を表示するために、すばやく "ドリルダウン" したい場合があります。 これは、複数項目フォームを単一項目フォームにリンクすることで、Access で行います。 複数項目フォームのアイテムをクリックすると、単一項目フォームが開き、詳細が表示されます。
フォームを作成する
ほとんどの場合、ドリルダウン構成の 2 つのフォームは、同じテーブルまたはクエリに基づいて作成されます。 使用するフォームのペア (1 つはデータシート フォームまたは複数アイテム フォーム、もう 1 つは単一アイテム フォームまたは "詳細" フォーム) が既にある場合は、このセクションをスキップできます。 それ以外の場合は、次の手順に従って作成します。
データシートフォームまたは複数項目フォームを作成する:
-
ナビゲーション ウィンドウで、データシート フォームに必要なデータを含むテーブルまたはクエリを選択します。
-
[その他の>作成] をクリックし、必要な種類に応じて [複数のアイテム] または [データシート] をクリックします。
-
必要に合ったデザイン変更を行います。 各アイテムを特定するのに十分な情報を残して、可能な限り多くの列を削除します。
-
フォームを保存して閉じます。
複数項目フォームの詳細については、「複数項目ツールを使用してフォームを 作成する」を参照してください。
単一項目フォームまたは "詳細" フォームを作成する:
-
ナビゲーション ウィンドウで、詳細フォームに必要なデータを含むテーブルまたはクエリを選択します。 これは、最初のフォームで使用したテーブルまたはクエリと同じ可能性があります。
-
[フォーム の作成] > クリックします。
-
必要なデザイン変更を行い、フォームを保存して閉じます。
詳細については、「フォーム ツールを 使用してフォームを作成する」を参照してください。
詳細フォームを開くロジックを追加する
複数項目フォームまたはデータシート フォームに小さなマクロを追加します。 マクロによって詳細フォームが開き、正しい項目が表示されます。
マクロの操作をあまり行っていない場合でも、心配する必要はありません。この手順で見つけた XML をコピーして貼り付けるだけで完了です。
-
データシート フォームを使用している場合は、ナビゲーション ウィンドウでデータシート フォームをダブルクリックして開きます。 複数項目フォームの場合は、ナビゲーション ウィンドウでフォームを右クリックし、[レイアウト ビュー] を クリックします。
-
プロパティ シートが開いていない場合は、F4 キーを押して開きます。
-
マクロを追加する列をクリックします。 これは、マクロの完了時にクリックして詳細フォームを開く列です。 上の図では、frmContactList の ID 列にマクロが追加されています。
ヒント: 複数の列にマクロを追加できます。
-
プロパティシートの [イベント] タブで、[クリック時] または[Dblクリック時] プロパティ ボックスをクリックし (フィールドを 1 回クリックするかダブルクリックしてフォームを開くのかによって異なる)、[ビルド] ボタン をクリックします。
-
ビルダーの選択を求めるメッセージが表示されたら、[ マクロ ビルダー] を選択し 、[OK]をクリックします。
-
この XML ブロックを選択し、Ctrl キーを押しながら C キーを押してクリップボードにコピー <?xml version="1.0" encoding="UTF-16" standalone="no"?> <UserInterfaceMacros xmlns="http://schemas.microsoft.com/office/accessservices/2009/11/application"> <UserInterfaceMacro For="ID" Event="OnClick"><Statements><Action Name="OnError"><Argument Name="Goto">Macro Name</Argument><Argument Name="MacroName">ErrorHandler</Argument></Action> <ConditionalBlock><If><Condition>[Form].[Dirty]</Condition><Statements><Action Name="SaveRecord"/></Statements></If></ConditionalBlock> <ConditionalBlock><If><Condition>IsNull([ID])</Condition><Statements><Comment>Open the form to a new record if the current ID is Null</Comment><Action Name="OpenForm"><Argument Name="FormName">frmContactDetails</Argument><Argument Name="DataMode">Add</Argument><Argument Name="WindowMode">Dialog</Argument></Action><Action Name="Requery"/></Statements></If><Else><Statements><Comment>Use a TempVar to pass a filter to the OpenForm action</Comment><Action Name="SetTempVar"><Argument Name="Name">Contact_ID</Argument><Argument Name="Expression">[ID]</Argument></Action><Action Name="OpenForm"><Argument Name="FormName">frmContactDetails</Argument><Argument Name="WhereCondition">[ID]=[TempVars]![Contact_ID]</Argument><Argument Name="DataMode">Edit</Argument><Argument Name="WindowMode">Dialog</Argument></Action><Action Name="RemoveTempVar"><Argument Name="Name">Contact_ID</Argument></Action><Action Name="RefreshRecord"/></Statements></Else></ConditionalBlock> </Statements></UserInterfaceMacro></UserInterfaceMacros>
します。 -
マクロ ビルダーの空白領域 ([新しいアクションの追加]ドロップダウン リストの下) をクリックし、Ctrl キーを押しながら V キーを押してマクロ アクションに貼り付けます。 問題ない場合は、マクロ ビルダーに XML が表示されません。次の手順に示すように、読み取り可能なマクロ ブロックに拡張されます。
-
必要に応じて、フォーム名 (frmContactDetails) とリンク列名 (ID) を、フォームの名前と 2 つのフォームのリンクに使用している列に置き換えます。 次の図は、自分の識別子名と一致する編集を行う必要がある場合がある場所を示
-
[デザイン] タブの [保存して閉 じる] を クリックします。
-
クリック可能な列をハイパーリンクのように表示して、クリック可能な列を他のユーザーに知らせた場合は、その列がまだ選択されているのを確認し、プロパティ シートで [書式] タブをクリックし、[ハイパーリンクとして表示] プロパティを [常に] に設定します。
-
フォームを保存して閉じ、もう一度開き、変更した列をクリックまたはダブルクリックしてマクロをテストします。
デスクトップ データベースのマクロの詳細については、「デスクトップ データベースのコントロールにロジックを追加する」 を参照してください。
他の種類のフォーム リンク
フォーム/サブフォームの組み合わせを作成し、それらをリンクするには、「サブフォーム (一対多フォーム) を含むフォームを作成する」を参照 してください。
テーブルやクエリなどのデータ ソースにリンクされたフォームを作成するには、「フォーム ツールを使用してフォームを作成する」 を参照してください。