お世話になります。
タイトルとして、「クエリフォームからのレコード追加」とすべきか
「フォーム上でのテーブル参照」とすべきか迷うところなのですが
仕入マスタ(ID、品番、仕入日、仕入数)
商品マスタ(ID、品番、商品名)
という二つのマスタと、
品番でリレーションして「仕入マスタのフィールド(from仕入マスタ)+商品名(from商品マスタ)」を出すだけの単純なクエリがあります。
今、仕入マスタに新規レコードをフォームから追加する際、
品番を入れたら商品マスタから商品名が参照され表示される、というフォームを作成したいのですが、どうしたら実現可能でしょうか。
(絶対やりかたがあると思ったのですが、うまく探せず質問させていただきます)
当初、新規レコード追加時には、品名を表示させようとしていなかったため、普通に「仕入マスタのフォーム」で「新規」ボタンに下記プロシージャを登録していたのですが。。
「仕入マスタのフォーム」を「仕入クエリのフォーム」に変更して、下記プロシージャを少々修正するだけで実現できるでしょうか。
(素人考えでいくつか試してみたのですが、この場合★の部分に何を指定すればいいのかわかりません。)
Private Sub 新規_Click()
Me.AllowEdits = False
Me.AllowAdditions = True
DoCmd.GoToRecord acDataForm, "仕入マスタ", acNewRec '★
End Sub
わかりにくい説明で申し訳ございません。
何卒お力添え宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
> 仕入マスタに新規レコードをフォームから追加する際、
> 品番を入れたら商品マスタから商品名が参照され表示される、というフォーム
以下は、追加の時だけ表示するものではなく、常に表示されるものになります。
(商品マスタの品番には、重複がないものとします)
「仕入マスタのフォーム」が既にあるようですので、「品番」の横にでもコンボボックスを追加します。
ラベル部分は要らないと思うので、ラベルは削除しておきます。
コンボボックス名を「cbx品番」としたとします。
プロパティで以下を変更していきます。
コントロールソース: 品番
列数: 2
列幅: 0cm;4cm (1列目を非表示に、2列目の幅は適当に)
値集合ソース: SELECT 品番, 商品名 FROM 商品マスタ;
(並び順があるのなら追加で指定します)
連結列: 1
タブストップ: いいえ
これにより、「品番」テキストボックスの値を変えると、コンボボックスの表示も変わります。
また、コンボボックスを変更すると、「品番」テキストボックスの値が変わります。
新規ボタンが、「仕入マスタのフォーム」にあるのなら、以下のような書き方でいけると思います。
Private Sub 新規_Click()
Me.AllowEdits = True
Me.AllowAdditions = True
DoCmd.GoToRecord , , acNewRec
End Sub
Private Sub Form_Current()
If (Not Me.NewRecord) Then
If (Me.AllowEdits) Then Me.AllowEdits = False
If (Me.AllowAdditions) Then Me.AllowAdditions = False
End If
End Sub
※ 新規ボタンを押すまでは、編集/追加できないようにする、という前提で。
※ 新規ボタン押したけど、何もせずに他へ移動しても大丈夫なように。
(レコード移動時に新規でなければ、Falseへ、重複設定を避けるように True の時のみ)
※ 新規の時のみコンボボックスを表示するのなら、上記タイミングで Visible を設定すればよいと思います。
この回答への補足
>30246kikuさま
いつもいつもありがとうございます(><)
ところでこのフォームのレコードソースは
「仕入マスタ」でしょうか それとも
「仕入クエリ」でしょうか。
宜しければお教えください。
>30246kikuさま
ありがとうございました。
「仕入マスタ」でできました。
本当にいつもありがとうございます。
助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- Excel(エクセル) VBA でvlookup エラーなどは削除したい 8 2022/12/30 04:03
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- Excel(エクセル) 【条件付き書式】countifsで複数条件を満たしたセルを赤くする方法 2 2023/02/09 23:53
- Excel(エクセル) Excel関数 情報引用する方法 4 2022/07/31 20:59
- Excel(エクセル) IFERROR、SMALL関数について 2 2022/08/22 23:40
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) vba userformで漢字を全角カタカナに 2 2022/07/24 15:38
- Visual Basic(VBA) VBAで最新のデータを別シートに転記する方法をお教えください。 3 2022/04/07 19:20
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
EXISTSを使ったDELETE文
-
SQL文で、合計が0のレコードを...
-
Accessの実行時エラーについて
-
フィールドの数値を四捨五入の...
-
異なるデータベース間のテーブ...
-
ACCESSでクエリ作成時複数のフ...
-
ACCESS ツリービューの作り方
-
アクセス フィールド名に変数...
-
差し込み後、元データを変更し...
-
SELECT 文 GROUP での1件目を...
-
for whichの使い方
-
SQLで特定の項目の重複のみを排...
-
エクセルで最後の文字だけ置き...
-
外部参照してるキーを主キーに...
-
重複していないレコードの抽出...
-
フィルターかけた後、重複を除...
-
列のヘッダーを含めるのをデフ...
-
INSERT文でフィールドの1つだ...
-
access2003 クエリSQL文に...
-
SQLServerで文字列の末尾からあ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EXISTSを使ったDELETE文
-
SQL文で、合計が0のレコードを...
-
Accessの実行時エラーについて
-
ACCESS ツリービューの作り方
-
ACCESS 商品毎の最新の単価を設...
-
日付により変動する「単価」を...
-
異なるデータベース間のテーブ...
-
前月の取得について
-
ACCESSでクエリ作成時複数のフ...
-
AS400にてサブファイルレコード...
-
アクセス フィールド名に変数...
-
テーブル名の トラン マスタ...
-
Accessのテーブル構成について
-
AccessVBA データのエクスポート
-
DBが複雑すぎる
-
Excel VBA ADODB
-
最大値を含むレコードの抽出
-
サブクエリの書き方
-
ユニオンクエリ?レポートにて...
-
FROM句にサブクエリ使えませんか
おすすめ情報