次の方法で共有

Access2016で2つのフォームを特定フィールドで連結するにはどうしたらよいでしょうか

Anonymous
2019-08-13T14:13:54+00:00

Access2016のフォームの作成方法について教えて下さい。

TableA

購入No 購入者 住所

1   河合  AAA

2   大木  BBB

3   山本  CCC

TableB

No       購入No  品名   数量

1   2    ボトル  2

2   2    スポンジ 3

のようなテーブルで購入Noでリレーションされています。

このとき1つのフォームでTableAを親(単票フォーム)に、TableBをサブフォーム(帳票フォーム)とし、リンク親・子フィールドに購入Noを設定すれば、サブフォームの新規レコードを入力したとき、自動的にTableBの購入Noに、関連するTableAの購入Noがセットされると思います。

これと同様のことを2つのフォーム間で設定する方法はありますでしょうか。

TableAがデータソースとなっているフォームA(帳票フォーム)にボタンをセットし、ボタンを押すとTableBをデータソースとしているフォームB(帳票フォーム)が開き、フォームBの新規レコードを入力すると呼び出し元のTableAの購入Noがセットされる、ということをしたいです。

現状ではフォームBを開く際に、VBAのOpenArgsに呼び出し元の購入Noをセットし、フォームBのデータの更新後イベントで

TableB.購入No = me.OpenArgs

として、TableAとTableBをリンクさせています。

一応やりたいことはできているのですが、Accessの標準の機能でもっとシンプルに2つのフォーム間で購入Noをリンクさせる方法はないでしょうか。

わかりにくい文章になってしまい申し訳ありませんが、ご教授のほどお願いいたします。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2019-08-19T05:43:27+00:00

> TableAがデータソースとなっているフォームA(帳票フォーム)にボタンをセットし、

> ボタンを押すとTableBをデータソースとしているフォームB(帳票フォーム)が開き、

> フォームBの新規レコードを入力すると呼び出し元のTableAの購入Noがセットされる、

> ということをしたいです。

[フォームB]側の[購入No](をコントロールソースとするテキストボックス)に関しては、

何らかの設定([可視]プロパティ, [使用可能]プロパティ, [編集ロック]プロパティなど)

により、ユーザーが直接編集出来ないようにされているのでしょうか。

> 一応やりたいことはできているのですが、Accessの標準の機能で

> もっとシンプルに2つのフォーム間で購入Noをリンクさせる方法は

> ないでしょうか。

[フォームA]のコマンドボタンのクリック時に開くフォームを、

[フォームB]とするのではなく、以下のフォームとなされば

よろしいのではないでしょうか。

> 1つのフォームでTableAを親(単票フォーム)に、

> TableBをサブフォーム(帳票フォーム)とし、

> リンク親・子フィールドに購入Noを設定

そしてその単票フォームを開く際に、[購入No]に対する Where条件式を

指定するようになさればよいはず。

> 現状ではフォームBを開く際に、VBAのOpenArgsに呼び出し元の購入Noをセットし、

> フォームBのデータの更新後イベントで

>

> TableB.購入No = me.OpenArgs

>

> として、TableAとTableBをリンクさせています。

あるいは[フォームB]の Load イベントが発生した際に

[購入No]をコントロールソースとするテキストボックスの

DefaultValue プロパティの値を設定するか。

この回答は役に立ちましたか?

1 人がこの回答が役に立ったと思いました。
0 件のコメント コメントはありません

1 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2019-08-20T00:57:51+00:00

    sk.exe様いつもありがとうございます。

    現状のシステムでは不可視のテキストボックスを作成し、親となる購入Noを代入しています。

    確かに、何もないメインフォームを作成し、サブフォームで購入NoでリンクをさせたフォームをWHEREで開けばよかったですね。

    これですごくすっきりしました。

    本当にありがとうございます。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません