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

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

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

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

Q&A

2回答

3341閲覧

access(クエリ)での連番出力の方法

mtanasan

総合スコア0

Access

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

0グッド

1クリップ

投稿2020/11/27 06:12

編集2020/11/27 09:36

前提・実現したいこと

【前程条件】
①Q_データ1(クエリ)
②Q_データ2(クエリ)
③Q_データ3(クエリ)
④Q_データ4(クエリ)

⑤T_データ1234(テーブル)
→①~④のアクションクエリでテーブル「T_データ1234」として出力しています。

各クエリのフィールドは共通です。
その中にあるフィールドの一つ(伝票番号)は「連番で出力」したい考えております。

①Q_データ1(クエリ)→ 連番01~10
②Q_データ2(クエリ)→ 連番11~20
③Q_データ3(クエリ)→ 連番21~30
④Q_データ4(クエリ)→ 連番31~40

※Q_データ1の連番に関しては別テーブルから取得しているため連番にて出力されております。
Q_データ2以降が連番にする事ができず考えあぐねております。

試したこと

DLast関数等を使ってデータを取得しましたがそのまま同じ値が反映され希望通りの状態にはならなかった次第です。

補足情報(FW/ツールのバージョンなど)

ツールはaccess 365 を利用しております。

【テーブル構成】
SMデータ →データ取得用
受注データ →データ取得用
★コンバートデータ →データ結果(アクションクエリ1~4までの集計結果)

①Q_データ1(クエリ)

INSERT INTO ★コンバートデータ ( レコードナンバー, 削除マーク, 締めフラグ, チェック, 注文日時, 伝票, 伝票区分, 取引区分, 税転嫁, 金額端数処理, 税端数処理, 得意先コード, 納入先コード, 担当者コード, 行番号, 明細区分, コード, 列16, 商品名, 課税区分, 単位, 入数, 購入数量, 倉庫コード, 数量, 単価, 金額, 回収予定日, 税抜額, 原価, 税抜き売上原価, 送り状番号, 数量小数桁, 単価小数桁, 規格・型番, 色, サイズ, 納入期日, 分類コード, 伝票区分2, 受注コード, プロジェクト主コード, プロジェクト副コード )
SELECT DISTINCT 受注データ.[レコードナンバー], "1" AS 削除マーク, 1 AS 締めフラグ, 0 AS チェック, 受注データ.注文日時, 受注データ.伝票, 24 AS 伝票区分, 1 AS 取引区分, 1 AS 税転嫁, 1 AS 金額端数処理, 1 AS 税端数処理, "[Y]-9996-3" AS 得意先コード, "" AS 納入先コード, "013" AS 担当者コード, "追加予定" AS 行番号, 1 AS 明細区分, SMデータ.[コード], "" AS 列16, SMデータ.商品名, 13 AS 課税区分, "本" AS 単位, 1 AS 入数, 受注データ.購入数量, "0000" AS 倉庫コード, [入数][購入数量] AS 数量, Round([販売単価]0.97,0) AS 単価, Round([販売単価]0.97,0)[入数][購入数量] AS 金額, 0 AS 回収予定日, 0 AS 税抜額, [購入数量][入数]*[税抜き売上原価] AS 原価, SMデータ.税抜き売上原価, 受注データ.送り状番号, "" AS 数量小数桁, "" AS 単価小数桁, SMデータ.規格・型番, "" AS 色, SMデータ.[サイズ], "" AS 納入期日, IIf([分類CD1]=3,"98","99") AS 分類コード, "" AS 伝票区分2, 受注データ.受注コード, 2000 AS プロジェクト主コード, "" AS プロジェクト副コード
FROM 受注データ INNER JOIN SMデータ ON 受注データ.商品番号 = SMデータ.品番(EC店長)
ORDER BY 受注データ.伝票;

②Q_データ2(クエリ)

INSERT INTO ★コンバートデータ ( レコードナンバー, 削除マーク, 締めフラグ, チェック, 注文日時, 伝票, 伝票区分, 取引区分, 税転嫁, 金額端数処理, 税端数処理, 得意先コード, 納入先コード, 担当者コード, 行番号, 明細区分, コード, 列16, 商品名, 課税区分, 単位, 入数, 購入数量, 倉庫コード, 数量, 単価, 金額, 回収予定日, 税抜額, 原価, 税抜き売上原価, 送り状番号, 数量小数桁, 単価小数桁, 規格・型番, 色, サイズ, 納入期日, 分類コード, 伝票区分2, 受注コード, プロジェクト主コード, プロジェクト副コード )
SELECT 受注データ.[レコードナンバー], "1" AS 削除マーク, 1 AS 締めフラグ, 0 AS チェック, 受注データ.注文日時, DMax("伝票","受注データ") AS 伝票, 24 AS 伝票区分, 1 AS 取引区分, 1 AS 税転嫁, 1 AS 金額端数処理, 1 AS 税端数処理, "[Y]-9996-3" AS 得意先コード, "" AS 納入先コード, "013" AS 担当者コード, "追加予定" AS 行番号, 1 AS 明細区分, "ZSO" AS コード, "" AS 列16, "送料" AS 商品名, 13 AS 課税区分, "本" AS 単位, 1 AS 入数, 1 AS ケース, "0000" AS 倉庫コード, [購入数量]/[購入数量] AS 数量, Round([送料]*0.97,0) AS 単価, Round([送料]1.1,0)[購入数量]/[購入数量] AS 金額, 0 AS 回収予定日, 0 AS 税抜額, [購入数量]/[購入数量]*531 AS 原価, 531 AS 原単価, 受注データ.送り状番号, "" AS 数量小数桁, "" AS 単価小数桁, SMデータ.規格・型番, "" AS 色, SMデータ.[サイズ], "" AS 納入期日, IIf([分類CD1]=3,"98","99") AS 分類コード, "" AS 伝票区分2, 受注データ.受注コード, 2000 AS プロジェクト主コード, "" AS プロジェクト副コード
FROM SMデータ INNER JOIN 受注データ ON SMデータ.品番(EC店長) = 受注データ.商品番号
WHERE (((Round([送料]*0.97,0))<>0 And (Round([送料]*0.97,0))<>""));

③Q_データ3(クエリ)

INSERT INTO ★コンバートデータ ( レコードナンバー, 削除マーク, 締めフラグ, チェック, 注文日時, 伝票, 伝票区分, 取引区分, 税転嫁, 金額端数処理, 税端数処理, 得意先コード, 納入先コード, 担当者コード, 行番号, 明細区分, コード, 列16, 商品名, 課税区分, 単位, 入数, 購入数量, 倉庫コード, 数量, 単価, 金額, 回収予定日, 税抜額, 原価, 税抜き売上原価, 送り状番号, 数量小数桁, 単価小数桁, 規格・型番, 色, サイズ, 納入期日, 分類コード, 伝票区分2, 受注コード, プロジェクト主コード, プロジェクト副コード )
SELECT 受注データ.[レコードナンバー], "1" AS 削除マーク, 1 AS 締めフラグ, 0 AS チェック, 受注データ.注文日時, 0 AS 伝票, 24 AS 伝票区分, 1 AS 取引区分, 1 AS 税転嫁, 1 AS 金額端数処理, 1 AS 税端数処理, "[Y]-9996-3" AS 得意先コード, "" AS 納入先コード, "013" AS 担当者コード, "追加予定" AS 行番号, 1 AS 明細区分, "ZDT" AS コード, "" AS 列16, "代引き手数料" AS 商品名, 13 AS 課税区分, "本" AS 単位, 1 AS 入数, 1 AS ケース, "0000" AS 倉庫コード, [購入数量]/[購入数量] AS 数量, Round([決済手数料]/1.1,0) AS 単価, Round([決済手数料]/1.1,0)*[購入数量]/[購入数量] AS 金額, 0 AS 回収予定日, 0 AS 税抜額, [購入数量]/[購入数量]*316 AS 原価, 316 AS 原単価, 受注データ.送り状番号, "" AS 数量小数桁, "" AS 単価小数桁, "" AS 規格・型番, 0 AS 色, 0 AS サイズ, "" AS 納入期日, IIf([分類CD1]=3,"98","99") AS 分類コード, "" AS 伝票区分2, 受注データ.受注コード, 2000 AS プロジェクト主コード, "" AS プロジェクト副コード
FROM SMデータ INNER JOIN 受注データ ON SMデータ.品番(EC店長) = 受注データ.商品番号
WHERE (((Round([決済手数料]/1.1,0))<>0 And (Round([決済手数料]/1.1,0))<>""));

④Q_データ4(クエリ)

INSERT INTO ★コンバートデータ ( レコードナンバー, 削除マーク, 締めフラグ, チェック, 注文日時, 伝票, 伝票区分, 取引区分, 税転嫁, 金額端数処理, 税端数処理, 得意先コード, 納入先コード, 担当者コード, 行番号, 明細区分, コード, 列16, 商品名, 課税区分, 単位, 入数, 購入数量, 倉庫コード, 数量, 単価, 金額, 回収予定日, 税抜額, 原価, 税抜き売上原価, 送り状番号, 数量小数桁, 単価小数桁, 規格・型番, 色, サイズ, 納入期日, 分類コード, 伝票区分2, 受注コード, プロジェクト主コード, プロジェクト副コード )
SELECT 受注データ.[レコードナンバー], "1" AS 削除マーク, 1 AS 締めフラグ, 0 AS チェック, 受注データ.注文日時, 0 AS 伝票, 24 AS 伝票区分, 1 AS 取引区分, 1 AS 税転嫁, 1 AS 金額端数処理, 1 AS 税端数処理, "[Y]-9996-3" AS 得意先コード, "" AS 納入先コード, "013" AS 担当者コード, "追加予定" AS 行番号, 1 AS 明細区分, "ZNE
" AS コード, "" AS 列16, "値引き
" AS 商品名, 13 AS 課税区分, "本" AS 単位, 1 AS 入数, 1 AS ケース, "0000" AS 倉庫コード, [購入数量]/[購入数量] AS 数量, Round([ポイント利用額]/1.10.97,0) AS 単価, Round([ポイント利用額]/1.10.97,0)[購入数量]/[購入数量] AS 金額, 0 AS 回収予定日, 0 AS 税抜額, [購入数量]/[購入数量]13 AS 原価, 13 AS 原単価, 受注データ.送り状番号, "" AS 数量小数桁, "" AS 単価小数桁, "" AS 規格・型番, 0 AS 色, 0 AS サイズ, "" AS 納入期日, IIf([分類CD1]=3,"98","99") AS 分類コード, "" AS 伝票区分2, 受注データ.受注コード, 2000 AS プロジェクト主コード, "" AS プロジェクト副コード
FROM SMデータ INNER JOIN 受注データ ON SMデータ.品番(EC店長) = 受注データ.商品番号
WHERE (((Round([ポイント利用額]/1.1
0.97,0))<>0 And (Round([ポイント利用額]/1.1
0.97,0))<>""));

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

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

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

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

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

sazi

2020/11/27 08:33

>Q_データ1の連番に関しては別テーブルから取得しているため連番にて出力されております。 >Q_データ2以降が連番にする事ができず考えあぐねております。 Q_データ2以降ははQ_データ1の続きにしたいという事ですか? もしそうなら、その連番はデータとして確定してテーブルに保存されているのでしょうか?
mtanasan

2020/11/27 09:29

ご確認いただきましてありがとうございます。 ご記載いただきました通り、Q_データ2(クエリ)以降につきましてはQ_データ1の続きにしたい次第です。 ※連番データにつきまして Q_データ1(クエリ)は確定したテーブルに保存されているものをQ_データ1(クエリ)から呼び出しております。 テーブルに格納している時点で連番になっております。 お手数をおかけいたしまして申し訳ありませんが宜しくお願い致します。
sazi

2020/11/27 13:17 編集

Q_データ2以降のwhere条件はどのテーブルの項目ですか? それから、「コンバートデータ」のキーは何ですか? もう一点、Q_データ1(クエリ)で連番と言っているのはどの項目ですか? さらに、それぞれのクエリーで作成されるデータは10件固定なのですか? 固定ではない場合、生成する連番のルールは?
mtanasan

2020/11/28 06:13

下記にてご質問いただきました内容に回答いたしましたが 意図されている回答になっておりますでしょうか。 不足しておりましたら申し訳ありません。 ---------------------------------------------- >>Q_データ2以降のwhere条件はどのテーブルの項目ですか? where条件は指定は指定おりません。 「受注データ」というテーブルから前述のクエリを使い各情報を抽出しております。 ・Q_データ1(クエリ)=商品価格情報 →コンバートデータと同じフィールド名でクエリを作成しております。  このクエリでは商品価格を取得してコンバートデータに追加しております。 ・Q_データ2(クエリ)=送料情報 ・Q_データ3(クエリ)=代引情報 ・Q_データ4(クエリ)=値引情報 →コンバートデータと同じフィールド名でクエリを作成しております。  このクエリではそれぞれ送料、代引、値引情報を取得してコンバートデータに追加しております。 ※以下、イメージになります。 【受注データ】※下記が1レコードのイメージです。 受注ID  :12345 伝票番号 :ABC789 商品名  :アイテムA 価格   :1000円 送料   :200円 値引   :100円 代引   :300円 【Q_データ1(クエリ)】 受注ID  :12345 伝票番号 :ABC789 商品名  :アイテムA 価格   :1000円 【Q_データ2(クエリ)】 受注ID  :12345 伝票番号 :Q_データ1(クエリ)からの連番 商品名  :送料 送料   :200円 ※同じフィールドを使っているので 商品名の所に「送料」と入ります。 【Q_データ3(クエリ)】 受注ID  :12345 伝票番号 :Q_データ2(クエリ)からの連番 商品名  :代金 代引   :100円 ※同じフィールドを使っているので 商品名の所に「代引」と入ります。 >>それから、「コンバートデータ」のキーは何ですか? 主キーは設定しないです。 各アクションクエリからテーブル追加をしているだけになります。 >>もう一点、Q_データ1(クエリ)で連番と言っているのはどの項目ですか? 連番データは「伝票」の項目になります。 >>さらに、それぞれのクエリで作成されるデータは10件固定なのですか? >>固定ではない場合、生成する連番のルールは? →固定ではありません。元データとなる受注データの内容により異なります。 連番の開始番号は「受注テーブル」より取得しておりますため、そのあとは1づつ加算することになります。 ---------------------------------------------- 以上になります。 何卒宜しくお願い致します。
kitasue

2020/11/28 08:58 編集

[伝票]の値を 10 11 12 : としたいのでしょうか(数値)。それとも、 ABC789 ABC790 ABC791 : としたいのでしょうか(文字列)。
sazi

2020/11/28 11:38

>>Q_データ2以降のwhere条件はどのテーブルの項目ですか? >where条件は指定は指定おりません。 クエリーに書かれているのに無いとはどういう事ですか。 イメージをコメントされましたが、クエリーの内容と一致していないのはどういう事ですか。
mtanasan

2020/11/30 09:43

kitasue様 確認ありがとうございます。 「伝票」につきましては数値のみになります。
mtanasan

2020/11/30 09:43

sazi様 確認ありがとうございます。 質問に回答できているかわかりませんが Q_データ2以降のデータも受注IDをベースに送料や代引、値引の金額を呼び出しているのですが その中「0」や「空白」は除外するようにしております。 ※Q_データ2でいいますと「単価」フィールドになります。
sazi

2020/11/30 10:20

会話が成立しませんね。 では、質問のクエリーが動作確認できるように、使用しているテーブルのデザインとサンプルデータを質問に追記して下さい。※ここにコメントで追加はしないで下さいね。
guest

回答2

0

hatenaさんの、以下のサイトが参考になるかも知れません。
複数レコードの追加クエリで連番を付与する

上記サイトの、InitCounterプロシジャと、GetCounterプロシジャを導入して、
例えば②Q_データ2(クエリ)なら、SELECT句の

SQL

1DMax("伝票","受注データ") AS 伝票,

SQL

1GetCounter([品番(EC店長)]) AS 伝票,

に変更し、WHERE条件の;(セミコロン)の直前に

SQL

1AND InitCounter(DMax("伝票","★コンバートデータ"))

を追加してはいかがでしょうか。

投稿2020/11/30 20:39

kitasue

総合スコア314

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

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

0

DLast関数等を使ってデータを取得しましたがそのまま同じ値が反映され希望通りの状態にはならなかった次第です。

DLast関数は入力順の最後を返すという仕様ではないです。下記参照。

First および Last 関数の仕様 - hatena chips

DMax関数でどうですか。

それでうまくいかない場合は、テーブルのフィールド構成や現状のクエリのSQL文を提示してください。

投稿2020/11/27 08:20

hatena19

総合スコア34075

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

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

mtanasan

2020/11/27 09:39

ご確認いただきましてありがとうございます。 DMax関数でも想定しておりました値にはなりませんでした。 クエリ情報を追加いたしましたのでお手数をおかけいたしまして 申し訳ありませんがご確認の程お願いできますでしょうか。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問