質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

623閲覧

ACCESS 単票フォームで、クエリの結果を参照する方法

YISS

総合スコア14

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2021/04/01 07:19

編集2021/04/02 08:47

前提

ACCESSの在庫管理システムを作成しています。
テーブルは、下記2つで構成されています。

〔在庫品マスタテーブル〕フィールド
・ID(オートナンバー)
・商品名
・商品コード
・保管場所
・備考

〔入出荷情報〕フィールド
・ID(オートナンバー)
・在庫品マスタID
・入出荷日
・入荷数
・出荷数
・担当者
・入出荷備考

上記2テーブルを連結させて、入出荷記録用のクエリを作成し、入力用の単票フォームを作成しました。
〔入出荷記録用クエリ〕
・在庫品マスタID
・商品名
・商品コード
・入出荷日
・入荷数
・出荷数
・担当者
・入出荷備考

単票フォームは、フォームを開いた際は全て空白で、
在庫品マスタIDのテキストボックス欄にIDを直接入力すると、
商品名、商品コードが反映されます。
入出荷日、入荷数、出荷数、担当者、入出荷備考に、情報を入力後、
登録ボタンを押すと、登録されます。

実現したいこと、行ったこと

上記単票フォームにて、在庫品マスタIDを入力すると、在庫数も一緒に反映されるようにしたいです。

現在庫数がわかるクエリ〔入出荷記録用クエリ〕が別にあるため、

〔入出荷記録用クエリ〕を、
〔在庫品マスタテーブル〕-〔入出荷情報〕-〔入出荷記録用クエリ〕で連結して構成し、
クエリ上では在庫数が分かるようになりました。

単票フォーム上でも在庫数は確認できるようになったのですが、
フォームを開いた際に、在庫品マスタIDですでに「1」が選択されるようになり、
テキストボックス欄にIDの直接入力もできなくなりました。

何が原因でこうなったのでしょうか?
そもそも、根本的になにか間違ってますでしょうか?

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

上記2テーブルを連結させて、入出荷記録用のクエリを作成し、入力用の単票フォームを作成しました。

〔入出荷記録用クエリ〕

現在庫数がわかるクエリ〔入出荷記録用クエリ〕が別にあるため、

どちらも〔入出荷記録用クエリ〕になってますが、これはおかしいですよね。
現在庫数がわかるクエリは「在庫数クエリ」と仮定して回答します。

〔入出荷記録用クエリ〕を、

〔在庫品マスタテーブル〕-〔入出荷情報〕-〔入出荷記録用クエリ 在庫数クエリ〕で連結して構成し、
クエリ上では在庫数が分かるようになりました。

在庫数クエリは集計クエリですよね。
集計クエリを含むクエリは更新や追加が不可のクエリになります。

単票フォーム上でも在庫数は確認できるようになったのですが、

フォームを開いた際に、在庫品マスタIDですでに「1」が選択されるようになり、
テキストボックス欄にIDの直接入力もできなくなりました。

更新不可なのでそうなります。

レコードソースのクエリから集計クエリは削除して、DLookup関数で**現在庫数がわかるクエリ〔入出荷記録用クエリ〕**の集計値を参照すればいままで通りに使えるはずです。

在庫数を表示するテキストボックスのコントロールソースに下記の式を設定してください。

=DLookup("在庫数","在庫数クエリ","在庫品マスタID=" & [在庫品マスタID])

投稿2021/04/01 07:53

編集2021/04/01 08:10
hatena19

総合スコア33699

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YISS

2021/04/02 08:45

>どちらも〔入出荷記録用クエリ〕になってますが、これはおかしいですよね。 >現在庫数がわかるクエリは「在庫数クエリ」と仮定して回答します。 ⇒すみません、表記ミスです。仰る通り「在庫数クエリ」です。 集計クエリを含むクエリは更新や追加が不可だったんですね。 知りませんでした。ありがとうございます。 教えていただいたDLookup関数で思い通りのかたちにすることができました。 また、フォームを開いた時点では、[在庫品マスタID]が空欄でエラーになるため、最終的にはこちらのかたちに落ち着きました。色々とありがとうございました。 =IIf(IsNull([在庫品マスタID]),"",DLookup("在庫数","在庫数クエリ","在庫品マスタID=" & [在庫品マスタID]))
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問