2012-02-10 10 views
0

親と子の2つのテーブルがあります。子レコードはテーブルにあらかじめ存在します。子どものコレクションを持つサブフォームを持つParentのフォームを作成したいと思っています。新しい子供たちは決してここで作られるべきではありません。選択された子は、FK属性を親のPKに設定します。MS Access:親フォームのコレクションに既存の子を追加する方法

これはMS Access 2010で可能ですか?

おかげで...

+0

何でもできます。あなたは様々な親に子供を割り当てたいと言っていますか? – Fionnuala

答えて

1

一つの方法は、フォームとサブフォームを作成し、NoにサブフォームのAllow Additionsプロパティを設定し、これが作成されている子供たちを防ぐことができますすることです。次に、呼び出された行にボタンを追加し、私たちは言わせて、Assign、このボタンのClickイベントはその後、親のためのPKへの子供たちのためにFKを更新してしまう、と言う:

Me.txtParentID = Me.Parent.txtID 

を人間の性質は、それが何であるかであること親が間違って割り当てられたときに削除されるようにするフォームやボタンが必要になるでしょう。

フォームから割り当てられた子を除外したい場合があります。

もちろん、これを行うにはいくつかの方法があります。

編集

おそらくあなたは親を示し、子テーブル内のいくつかのフィールドを持っているので、あなたが割り当てられていない子供をフィルタリングするためにそれを使用することができます。あなたはまだメインから直接、IDを確認するメッセージボックスで、メインフォームからOpenArgを使用することができアサイン湖底を持つことができます

SELECT ID, Something FROM Children WHERE ParentID Is Null 

:ポップアップフォームのようなものになるだろう、あなたのレコードソースフォーム、または親を選択するための追加の小さなフォーム。

ポップアップはおすすめしません。アプリケーションをモーダルにしない限り、ユーザーは十分な注意を払わずにメインフォームのレコードを移動し、アプリケーションモーダルにすると迷惑になる可能性があります。

割り当てられた子のサブフォームは安全です。または、親を選択するための子テーブルの親ID外部キーに基づくコンボボックスを含む未割り当ての子のみをリストする割り当てフォーム。これは連続的な形である可能性があります。

+0

多くのものがあるので、_unassigned_子をフォームから除外したいと思います。私はAddボタンのようなものを持っています。ポップアップにはすべての子が表示されます。それらをフィルタリングし、割り当てられているものをいくつかチェックし、OKをクリックします。これは可能ですか? – Oliv

関連する問題