使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
> 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 プロパティの値を設定するか。