Access (一般機能)

Accessの一般機能に関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 7全般 : Access 2010)
複数値のフィールドを一括入力
投稿日時: 19/12/16 22:54:03
投稿者: suzutao

更新クリエについてご質問です。
エクセルデータをAccessにインポートした後に、複数値のフィールドに対応するIDを一括入力する方法が分かりません。

テーブル:「M_商品」
フィールド:「商品コード」「商品名」「仕入先ID」「仕入先」
 
テーブル:「T_仕入先」
フィールド:「仕入先ID」「仕入先」
 
M_商品のフィールド「商品コード」ひとつにに対応する「仕入先」は複数値になります。
M_商品の「仕入先ID」はまだはいっていない状態です。
 
更新クエリで「M_商品」のフィールド「仕入先ID」を一括入力しようとすると、
「複数値を持つフィールドをUPDATEクエリやDELETEクエリにふくめることはできません。」とエラーメッセージが表示されます。
 
複数値のフィールドは一括入力できないのででょうか?

回答
投稿日時: 19/12/17 09:25:12
投稿者: sk

引用:
M_商品のフィールド「商品コード」ひとつにに対応する「仕入先」は複数値になります。
M_商品の「仕入先ID」はまだはいっていない状態です。

引用:
更新クエリで「M_商品」のフィールド「仕入先ID」を一括入力しようとすると、
「複数値を持つフィールドをUPDATEクエリやDELETEクエリにふくめることはできません。」
とエラーメッセージが表示されます。

この場合は、更新クエリではなく追加クエリを使用することになるはず。
 
引用:
エクセルデータをAccessにインポートした後に、
複数値のフィールドに対応するIDを一括入力する

但し、「 Excel ブックからインポートしたテーブルを使用して
[M_商品]の既存のレコードの[仕入先ID]の値を設定する」
ということであれば、実際に追加クエリを使用出来るか否かは、
インポートしたテーブルの構造や、そのテーブルにおいて
[仕入先ID]の値がどのような形で格納されているか次第です。
(場合によっては VBA を使わなければならない)

投稿日時: 19/12/17 21:19:22
投稿者: suzutao

M_商品			
商品コード	商品名	仕入先ID	仕入先
A001	ああ		A社
A002	いい		A社, B社, E社
A003	うう		B社
A004	ええ		B社, D社
A005	おお		C社, D社, E社

T_仕入先	
仕入先ID	仕入先
1	A社
2	B社
3	C社
4	D社
5	E社

M_商品			
商品コード	商品名	仕入先ID	仕入先
A001	ああ	1	A社
A002	いい	1, 2, 5	A社, B社, E社
A003	うう	2	B社
A004	ええ	2, 4	B社, D社
A005	おお	3, 4, 5	C社, D社, E社

 
上記1段目、2段目がエクセルデータです。これをAccessにインポートしてクエリで「M_商品」の
フィールド「仕入先ID」を上記3段目のように一括で入れたいのです。
画面だと少しずれていますが商品名がああ、いい〜で、仕入先が A社、B社〜となります。
やはりクエリではなくVBAを使用するのでしょうか?

回答
投稿日時: 19/12/18 09:32:13
投稿者: sk

引用:
M_商品			
商品コード	商品名	仕入先ID	仕入先
A001	ああ		A社
A002	いい		A社, B社, E社
A003	うう		B社
A004	ええ		B社, D社
A005	おお		C社, D社, E社

引用:
上記1段目、2段目がエクセルデータです。

引用:
商品名がああ、いい〜で、仕入先が A社、B社〜となります。

・[M_商品]は Excel ワークシートからインポートした新規のテーブルである。
 (インポート前から既に定義されていたわけではない)
 
・[M_商品]の[仕入先]は単なるテキスト型のフィールドであり、
 複数値を持つフィールドではない
 
・[M_商品]の各レコードの[仕入先]に格納されているのは
 「 1 つの仕入先の名称を表す文字列」または
 「 2 つ以上の仕入先の名称をカンマ区切りで列挙した文字列」
 である。
 
・[M_商品]の[仕入先ID]は数値型のフィールドであり、
 インポート後に複数値を持つフィールドとして再定義された。
 
ということでしょうか。
 
その場合は追加クエリではなく VBA を使用する必要があります。

投稿日時: 19/12/21 17:20:22
投稿者: suzutao

お返事ありがとうございます。
 
コメントが遅くなりすみません。
skさんのおっしゃる通りの内容設定になります。
こちらがうまく説明できない分フォローして頂きありがとうございます。
クエリではなく、VBAになるとのことで了解致しました。
しかしながら、私のレベルがまだそこまで至っていませんのでもっと勉強して理解できるようになった時点で再度作成してみます。
 
何度も投稿ありがとうございました。