Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトルAccessのテーブルに行を追加したい
記事No171868
投稿日: 2017/06/30(Fri) 11:04
投稿者のぞみ
解決済: ON
OS:Windows7
Access Version: 2010

Accessで伝票の明細を作っていて「A」というテーブルに「伝票番号,店番,行番号,商品コード,金額」という項目があり、9行固定にしたいので「行」というテーブルがあり「行」という項目があり「1〜9」という行数が入っていてAというテーブルのデーターが1〜8行までしかなくても
9行固定にしたいのですがどうやってAと行というテーブルを使って足りない行を追加出来るのでしょうか??
宜しくお願い致します。

伝票番号,店番,行番号,商品コード,金額
1,001,1,SP1,500
1,001,2,SP2,1000

上記のデータなどに足りない行を追加したいです。

伝票番号,店番,行番号,商品コード,金額
1,001,1,SP1,500
1,001,2,SP2,1000
1,001,3,,
1,001,4,,
1,001,5,,
1,001,6,,
1,001,7,,
1,001,8,,
1,001,9,,

の様にしたいです。宜しくお願い致します。

タイトルRe: Accessのテーブルに行を追加したい
記事No171869
投稿日: 2017/06/30(Fri) 16:40
投稿者tkwan
解決済: ON
1)クエリを作ります。(クエリ1)

SELECT DISTINCT 伝票番号, 
                店番,
                行 AS 行番号
           FROM A, 行; 

2)もう一つクエリを作ります。

SELECT クエリ1.*, 
       A.商品コード, 
       A.金額
  FROM クエリ1 LEFT JOIN A ON (クエリ1.行番号 = A.行番号)
                               AND (クエリ1.伝票番号 = A.伝票番号);

タイトルRe^2: Accessのテーブルに行を追加したい
記事No171870
投稿日: 2017/06/30(Fri) 17:09
投稿者tkwan
解決済: ON
質問を読み違えたかもしれません。

テーブルに追加するのなら、

> 1)クエリを作ります。(クエリ1)
> 
> SELECT DISTINCT 伝票番号, 
>                 店番,
>                 行 AS 行番号
>            FROM A, 行; 
> 
> 2)もう一つクエリを作ります。
 ※追加クエリ

 INSERT INTO A(伝票番号,店番,行番号)
 SELECT * 
   FROM クエリ1
  WHERE クエリ1.行番号 NOT IN (SELECT A.行番号 
                                 FROM A 
                                WHERE A.伝票番号=クエリ1.伝票番号);

を実行すればよいです。

タイトルRe^3: Accessのテーブルに行を追加したい
記事No171891
投稿日: 2017/07/11(Tue) 17:51
投稿者のぞみ
解決済: ON
ご返信ありがとうございます。
下記の様にやったのですが、同じ内容が最大で9行になってしまいました。

INSERT INTO A(伝票番号,店番,行番号)
SELECT *
FROM クエリ1
WHERE クエリ1.行番号 NOT IN (SELECT A.行番号
FROM A
WHERE A.伝票番号=クエリ1.伝票番号);

1〜3行の伝票が4〜9という行数になり各3行づつになってしまいました。
どこを変更すれば良いのでしょうか?
商品コード,金額などは空欄にしたいです。

タイトルRe^4: Accessのテーブルに行を追加したい
記事No171895
投稿日: 2017/07/11(Tue) 19:19
投稿者tkwan
解決済: ON
クエリ1のSQLは、どんな風にしましたか?

タイトルRe^5: Accessのテーブルに行を追加したい
記事No171899
投稿日: 2017/07/12(Wed) 09:57
投稿者のぞみ
解決済: ON
> クエリ1のSQLは、どんな風にしましたか?

→イメージを作っていたら項目が増えたので下記の様にしました。
SELECT DISTINCT 発注者名, 取引先ID, 取引先名, 直接納品先ID, 直接納品先, 最終納品先ID, 最終納品先, 受信日時, 発注日, 納品日, 実納品日, 部門, 部門名, 行 AS 行番号, 便, 取引番号, 商品コード, JAN, 商品名, 入数, 発注数量, UNITQUANTITY, 取引番号2, [バーコード], 発注日2, 商品区分, 税区分
FROM A, 行;

宜しくお願い致します。

タイトルRe^6: Accessのテーブルに行を追加したい
記事No171901
投稿日: 2017/07/12(Wed) 10:44
投稿者tkwan
解決済: ON
> 1〜3行の伝票が4〜9という行数になり各3行づつになってしまいました。
具体的にはどんなレコードになったんですか?

> →イメージを作っていたら項目が増えたので下記の様にしました。
クエリ1に必要なフィールドは追加するフィールドだけでいいんです。
それ以外のフィールドは必要ないのです。
というか、それ以外のフィールドは作ってもなんの意味もないのです。

タイトルRe^7: Accessのテーブルに行を追加したい
記事No171902
投稿日: 2017/07/12(Wed) 10:54
投稿者tkwan
解決済: ON
> クエリ1に必要なフィールドは追加するフィールドだけでいいんです。
> それ以外のフィールドは必要ないのです。
> というか、それ以外のフィールドは作ってもなんの意味もないのです。

言い方を間違えました。
クエリ1には、追加するフィールド(伝票番号,店番,行番号)だけでないといけないのです。

クエリ1の結果
伝票番号	行番号	店番
1		1	001
1		2	001
1		3	001
1		4	001
1		5	001
1		6	001
1		7	001
1		8	001
1		9	001

商品コードフィールドを追加すると
伝票番号	行番号	店番	商品コード
1		1	001	
1		1	001	SP1
1		1	001	SP2
1		2	001	
1		2	001	SP1
1		2	001	SP2
1		3	001	
1		3	001	SP1
1		3	001	SP2
1		4	001	
1		4	001	SP1
1		4	001	SP2
1		5	001	
1		5	001	SP1
1		5	001	SP2
1		6	001	
1		6	001	SP1
1		6	001	SP2
1		7	001	
1		7	001	SP1
1		7	001	SP2
1		8	001	
1		8	001	SP1
1		8	001	SP2
1		9	001	
1		9	001	SP1
1		9	001	SP2

タイトルRe^8: Accessのテーブルに行を追加したい
記事No171903
投稿日: 2017/07/12(Wed) 14:10
投稿者のぞみ
解決済: ON
ありがとうございました。
無事に出来ました。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る