アクセス超初心者です。
入庫クエリでIDごとの入庫数を合計、
出庫クエリでIDごとの出庫数を合計し、
在庫クエリで在庫数を計算しています。
(入庫クエリの入庫数の合計)-(出庫クエリの出庫数の合計)
部品テーブルがあり、現在庫フィールドを作っています。
ID 部品名 現在庫
1 AAA 10
2 BBB 5
在庫クエリの在庫数を、部品テーブルの現在庫数に
代入したいと考えています。
在庫クエリを使い、テーブル作成クエリで現在庫テーブルを作成、
現在庫テーブルから更新クエリで、部品テーブルの現在庫数を
更新できるのではないかと考えたのですが、
つまづいてしまいました。
現在庫テーブル
ID 在庫数
現在庫テーブルの在庫数を、IDごとに部品テーブルの現在庫に
置き換えることは可能ですか?
また、その他よい方法がありましたら、教えて下さい。
ご指導のほど、よろしくお願いします。
No.3ベストアンサー
- 回答日時:
UPDATE 部品テーブル AS A INNER JOIN 在庫クエリ AS B
ON A.ID=B.ID SET A.現在庫=B.在庫数
SQLビューで上記SQLを入力します。テーブル、クエリ、フィールドの
名前は実物に合わせて変更してください。
この回答への補足
ご回答ありがとうございます。
nda23さんのご回答を参考にし、SQLを作成しましたが、
実行すると、「更新可能なクエリでなければなりません」
というエラーが出てしまいます。
部品テーブルがリレーションシップの1側のテーブルだから
なのでしょうか?
ご指導のほど、よろしくお願いします。
ご回答ありがとうございます。
nda23さんのご回答を参考にし、SQLを作成しましたが、
実行すると、「更新可能なクエリでなければなりません」
というエラーが出てしまいます。
ご指導のほど、よろしくお願いします。
No.5
- 回答日時:
>リレーションシップで組んだ
関係ありません。
>複数フィールドで主キーを構成していませんか?
例えば、部品テーブルはIDと部品名で主キーになっていないかという
ことです。もし、このような状態ですと、IDだけでは一意にならない
ため、IDだけの結合式では多:多の関係にしかなりません。
テーブルをデザインビューで開いた時、鍵マークのついたフィールドが
2ヵ所以上ないか確認してください。
お返事ありがとうございます。
部品テーブルの鍵マークのついたフィールドは
1箇所でした。
色々調べましたが、nda23さんのアドバイス通りで
更新されるはずですよね。
テーブルやクエリを作成していく中で、どこか
おかしなところがあるのかもしれませんね。
もう一度調べ直してみたいと思います。
No.4
- 回答日時:
>部品テーブル AS A INNER JOIN 在庫クエリ AS B ON A.ID=B.ID
これで、A側(部品テーブル)が一意にならないとすると、IDが
主キー(あるいは重複不許可のインデックス)になっていないと
考えられます。(複数フィールドで主キーを構成していませんか?)
>SET A.現在庫=B.在庫数
エイリアスによる修飾が逆になっていませんか?
在庫クエリ側(B)は「多」なので、左辺には使用できません。
>リレーションシップの1側のテーブルだからなのでしょうか?
違います。前にも述べましたが、一:一か一:多の一側の方しか
更新できません。よって、「1側のテーブルを更新する」は可能な
行為なのです。ON 句で指定する結合条件で「一」であるためには
一意キーを指定しなければなりません。
詳しい説明、本当にありがとうございます。
A側(部品テーブル)のIDを主キーに設定しています。
インデックスは重複無しになっています。
>複数フィールドで主キーを構成していませんか?
すみません、勉強不足で理解できないのですが、
部品テーブルにリレーションシップで組んだ他側のフィールドが
あることがいけないのでしょうか?
そのフィールドを削除してクエリを実行しても、同じでした。
何度も申し訳ありません。
No.2
- 回答日時:
DBの基本構造は、まずテーブルがあり、それに対する操作としてクエリがあります。
従って質問も1.テーブルとそのフィールド
2.クエリ(できればSQL文で)
のような順で説明されないと、判らない(判りづらい)ことになります。
ご質問の件は
1.部品テーブル
部品ID、部品名
2.入出庫テーブル
部品ID、入出庫日、数(プラスで入庫、マイナスで出庫)
上記テーブルを適当なクエリで操作することで処理できそうな気もするのですが。
No.1
- 回答日時:
ポイントは「更新されるテーブル」:「更新するクエリ」の関係が
1:1 あるいは 1:多 になっている必要があります。
一意性はプライマリキー、または重複を許さないインデックスにより
認識されます。
仮に部品テーブルのプライマリキーがIDとすると、在庫クエリにも
IDにあたる項目が必要です。この場合、「現在庫テーブル」を作る
意味はありません。
早速のご回答ありがとうございます。
現在庫テーブルは必要ないのですね。
部品テーブルのIDを主キーに設定しています。
在庫クエリは
ID 部品名 入庫数量の合計 出庫数量の合計 在庫数 で
部品テーブルの主キーにあたる項目も設定してあります。
更新クエリを作成する際、レコードの更新はどのように
入力すればよいのですか?
初歩的な質問で、申し訳ありません。
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelで在庫表(クエリ、ピボット) 2 2022/04/11 17:11
- メルカリ メルカリShopsを作るとメルカリで販売は楽になりますか メルカリとまったく変わりませんか? 2 2022/10/11 19:22
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Excel(エクセル) エクセルで在庫表を作っています。 それぞれの表で、入庫、出庫、残高が表示される表を作っています。 任 9 2023/05/03 21:45
- その他(Microsoft Office) Excelの関数(FILTER関数)について教えてください 2 2023/07/31 16:11
- 家具・インテリア この前よりも、長く在宅しそうなので改めて部屋の模様替えをしようと思ったのですが、キッチン内蔵のワンル 7 2022/06/19 08:55
- 運輸業・郵便業 ●(令和なのですが…) 今時、 (倉庫会社の在庫の)倉庫管理システムが、 “紙”(商品依頼書•注文書 2 2022/08/07 18:09
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- Excel(エクセル) 前の(左隣の)シートを連続参照するように、あとから変更したい 1 2023/02/22 00:51
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
ACCESSに同時アクセス(編集)を...
-
access テーブル内のレコード...
-
Accessでvlookupみたいなことは...
-
Accessの追加クエリで既存のテ...
-
3つの表を1つに縦に連結する
-
デザインビューで、連結式 を...
-
翌営業日までの日数をSQLで求め...
-
SQLで条件指定結合をしたいがNU...
-
テーブル作成クエリで主キーを設定
-
ACCESSで指定されたテーブルか...
-
Accessでテーブルからテーブル...
-
SQLで日付を条件に削除したい
-
2つのテーブルAとBをマージ...
-
ツリー構造をRDBで表現するには?
-
時間の足し算
-
ODBCで接続するとDBに変更/追加...
-
ACCESS クエリ(カウント0の...
-
Accessで、複数のテーブルで随...
-
Accessクエリでの、LIKE条件
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブル名やクエリ名...
-
ACCESSに同時アクセス(編集)を...
-
Accessでvlookupみたいなことは...
-
Accessでテーブルからテーブル...
-
Accessクエリでの、LIKE条件
-
Accessレコードの追加や変更が...
-
access テーブル内のレコード...
-
SQLで日付を条件に削除したい
-
3つの表を1つに縦に連結する
-
Accessの追加クエリで既存のテ...
-
SQLで条件指定結合をしたいがNU...
-
デザインビューで、連結式 を...
-
ツリー構造をRDBで表現するには?
-
ACCESSで指定されたテーブルか...
-
リンクテーブルを CopyObject ...
-
2つのテーブルを比較して一致し...
-
時間の足し算
-
ODBCで接続するとDBに変更/追加...
-
パススルークエリをテーブル作...
-
INSERT時にデータ登録とmaxの発...
おすすめ情報