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

     

リストへもどる

投稿記事の一括表示

タイトル伝票の出力
記事No171732
投稿日: 2017/03/02(Thu) 10:12
投稿者浅草
解決済: ON
OS:Windows7 pro
Access Version:2010

伝票番号・店番ごとにヘッダーを更新したいのですがどうやれば良いのでしょうか?
ヘッダーには 最初にHをつけ 伝票番号 店コード 発注日 納品日で
明細には 先頭にDがついていて 伝票行番号と商品コードと品番と発注数が入っています。
どこにどんな風にやれば

H 123456 001 20170301 20170303
D 1 46869999 ペン
D 2 45674899 ノリ
H 123457 002 20170301 20170303
D 1 46869999 ペン
D 2 45674899 ノリ

の風にTXTで出力したいのですが、どうすれば出力できるのでしょうか?

タイトルRe: 伝票の出力
記事No171733
投稿日: 2017/03/02(Thu) 14:14
投稿者hatena
解決済: ON
元になるテーブルのフィールド構成を提示してください。

テーブル名、フィールド名(データ型)、主キー、データ例

テーブルデータ例を出力したときの希望の出力結果

タイトルRe^2: 伝票の出力
記事No171734
投稿日: 2017/03/02(Thu) 14:57
投稿者浅草
解決済: ON
返信ありがとうございます。
> 元になるテーブルのフィールド構成を提示してください。
→テーブル名は「インポート」です。

テーブル名、フィールド名(データ型)、主キー、データ例
フィールドは下記の風に並んでいます。

伝票番号 店コード 発注日 納品日 伝票行番号 商品コード 品番 発注数 です。

希望出力結果は下記の通りです。
H 伝票番号 店コード 発注日 納品日
D 伝票行番号 商品コード 品番 発注数

伝票番号ごとにしたいです。

H 123456 001 20170301 20170303
D 1 46869999 ペン
D 2 45674899 ノリ
H 123457 002 20170301 20170303
D 1 46869999 ペン
D 2 45674899 ノリ

タイトルRe^3: 伝票の出力
記事No171735
投稿日: 2017/03/02(Thu) 18:12
投稿者hatena
解決済: ON
> 伝票番号 店コード 発注日 納品日 伝票行番号 商品コード 品番 発注数 です。

このテーブルのデータ例を出してもらえますか。
出力結果のもとになるデータでお願いします。


> 希望出力結果は下記の通りです。
> H 伝票番号 店コード 発注日 納品日
> D 伝票行番号 商品コード 品番 発注数
>
> 伝票番号ごとにしたいです。
>
> H 123456 001 20170301 20170303
> D 1 46869999 ペン
> D 2 45674899 ノリ
> H 123457 002 20170301 20170303
> D 1 46869999 ペン
> D 2 45674899 ノリ

ペン ノリ というのは、品番 フィールドですか。テキスト型ですか。
発注数が出力例にないですが。

元のテーブルデータと対応する出力例という形で提示してもらえますか。

タイトルRe^4: 伝票の出力
記事No171739
投稿日: 2017/03/07(Tue) 10:36
投稿者浅草
解決済: ON
H 123456 001 20170301 20170303
D 1 46869999 ペン 8
D 2 45674899 ノリ 3
H 123457 002 20170301 20170303
D 1 46869999 ペン 2
D 2 45674899 ノリ 4

のように出力したいです。
品番はテキストフィールドです。
宜しくお願い致します。

タイトルRe^5: 伝票の出力
記事No171740
投稿日: 2017/03/07(Tue) 14:10
投稿者hatena
解決済: ON
> H 123456 001 20170301 20170303
> D 1 46869999 ペン 8
> D 2 45674899 ノリ  3
> H 123457 002 20170301 20170303
> D 1 46869999 ペン  2
> D 2 45674899 ノリ  4
> 
> のように出力したいです。

TXT出力ということですが、
空白区切りということですかね。


考え方としては、
ヘッダー部分のクエリと
詳細部分のクエリを作成して、
ユニオンクエリで一つにまとめるという
ことになります。
このクエリをテキストとしてエクスポートします。


SELECT DISTINCT "D" AS 種別, 伝票番号, 0 AS 行番号, 店コード, 発注日, 納品日
FROM インポート
UNION ALL
SELECT "H" AS 種別, 伝票番号, 伝票行番号, 商品コード, 品番, 発注数
FROM インポート;

このクエリを「クエリ1」として保存します。
このままでは、並び順が想定通りにはならないので、
これをもとにさらにクエリを作成します。

SELECT
 種別, IIf(行番号=0,伝票番号,行番号) AS 番号,
 店コード AS コード, 発注日, 納品日
FROM クエリ1
ORDER BY 伝票番号, 行番号;

これをテキストエクスポートします。

タイトルRe^6: 伝票の出力
記事No171746
投稿日: 2017/03/13(Mon) 15:57
投稿者浅草
解決済: ON
hatena様

ありがとうございます。
出来ました。

タイトルRe^6: 伝票の出力
記事No171748
投稿日: 2017/03/13(Mon) 16:53
投稿者浅草
解決済: ON
SELECT DISTINCT "D" AS 種別, 伝票番号, 0 AS 行番号, 店コード, 発注日, 納品日
> FROM インポート
> UNION ALL
> SELECT "H" AS 種別, 伝票番号, 伝票行番号, 商品コード, 品番, 発注数,出荷日
> FROM インポート;

でHの方の明細に出荷日の項目を増やしたら
「ユニオンクエリで作成した2つのテーブル クエリの列数が一致しません」と表示されできません。
どうすれば項目を一致させなくても出来るのでしょうか?

タイトルRe^7: 伝票の出力
記事No171750
投稿日: 2017/03/15(Wed) 11:25
投稿者hatena
解決済: ON
> でHの方の明細に出荷日の項目を増やしたら
> 「ユニオンクエリで作成した2つのテーブル クエリの列数が一致しません」と表示されできません。
> どうすれば項目を一致させなくても出来るのでしょうか?

D の方に、演算フィールドを追加すればいいでしょう。

SELECT DISTINCT "D" AS 種別, 伝票番号, 0 AS 行番号, 店コード, 発注日, 納品日, Null AS 出荷日
FROM インポート
UNION ALL
SELECT "H" AS 種別, 伝票番号, 伝票行番号, 商品コード, 品番, 発注数, 出荷日
FROM インポート;

タイトルRe^8: 伝票の出力
記事No171751
投稿日: 2017/03/16(Thu) 14:27
投稿者浅草
解決済: ON
hatena様
ありがとうございます。

SELECT [クエリ1].区分, IIf( 伝票行 =00,伝票,伝票行) AS 番号, 店コード AS コード,発注日, 納品日,出荷日
FROM クエリ1
ORDER BY 伝票, 伝票行;

でユニオンクエリで並びかえると下記の様になるのですが、Hの番号が0になるのですが、空白にするにはどうすれば良いのでしょうか?

区分 番号 コード 発注日 納品日 出荷日
H 0 03026 161025 161028 20161026
D 01 1111111111111 0100
D 02 2222222222222 2M32 0100
D 03 3333333333333 2M312 0100
D 04 4444444444444 2M321 0100

宜しくお願い致します。

タイトルRe^9: 伝票の出力
記事No171752
投稿日: 2017/03/16(Thu) 14:51
投稿者hatena
解決済: ON
現状のユニオンクエリのSQL文をご提示ください。

タイトルRe^10: 伝票の出力
記事No171753
投稿日: 2017/03/16(Thu) 15:10
投稿者浅草
解決済: ON
> 現状のユニオンクエリのSQL文をご提示ください。
→現状のユニオンクエリは下記の通りです。

SELECT DISTINCT "H" AS 区分, 伝票, 00 AS 伝票行,店コード,発注日,納品日,出荷日
FROM REC
UNION ALL SELECT "D" AS 区分, 伝票, 伝票行, 商品コード, 取引先品番, 入数,Null AS 出荷日
FROM REC;

宜しくお願い致します。

タイトルRe^11: 伝票の出力
記事No171754
投稿日: 2017/03/16(Thu) 15:54
投稿者hatena
解決済: ON
> SELECT DISTINCT "H" AS 区分, 伝票, 00 AS 伝票行,店コード,発注日,納品日,出荷日
> FROM REC
> UNION ALL SELECT "D" AS 区分, 伝票, 伝票行, 商品コード, 取引先品番, 入数,Null AS 出荷日
> FROM REC;

RECテーブルの、伝票、伝票行 の各フィールドのデータ型はなんでしょうか。

テキスト型なら、下記にしてください。

SELECT DISTINCT "H" AS 区分, 伝票, "00" AS 伝票行,店コード,発注日,納品日,出荷日
FROM REC
UNION ALL SELECT "D" AS 区分, 伝票, 伝票行, 商品コード, 取引先品番, 入数,Null AS 出荷日
FROM REC;

SELECT [クエリ1].区分, IIf( 伝票行="00",伝票,伝票行) AS 番号, 店コード AS コード,発注日, 納品日,出荷日
FROM クエリ1
ORDER BY 伝票, 伝票行;

タイトルRe^12: 伝票の出力
記事No171755
投稿日: 2017/03/16(Thu) 16:17
投稿者浅草
解決済: ON
hatena様

ありがとうございます。出来ました。
"00"とやると何で消えるのでしょうか?
教えて頂けますか?
宜しくお願い致します。

タイトルRe^13: 伝票の出力
記事No171757
投稿日: 2017/03/16(Thu) 22:02
投稿者hatena
解決済: ON
> ありがとうございます。出来ました。
> "00"とやると何で消えるのでしょうか?

SQL では、単に 00 とする数値型の 0 になります。

" で囲むとテキスト型になります。

伝票行フィールドがテキスト型なら、

IIf(伝票行="00",伝票,伝票行)

とすることでテキスト型同士の比較になり、希望の結果になります。
数値型とテキスト型の比較では正しい結果になりません。

タイトルRe^14: 伝票の出力
記事No171767
投稿日: 2017/03/21(Tue) 15:46
投稿者浅草
解決済: ON
hatena様

ありがとうございます。
無事に出来ました。

タイトルRe^14: 伝票の出力
記事No171785
投稿日: 2017/03/24(Fri) 15:04
投稿者浅草
解決済: ON
このクエリをエクスポートするとひでまるeditorでみると改行コード?(↓)が1バイトとして
出力されてるらしく横幅を64バイト表示にしても65バイト目で改行されています。
この改行コードを削除してそのまま64バイト目で改行するにはどうすれば良いのでしょうか?

タイトルRe^15: 伝票の出力
記事No171789
投稿日: 2017/03/25(Sat) 18:03
投稿者hatena
解決済: ON
> このクエリをエクスポートするとひでまるeditorでみると改行コード?(↓)が1バイトとして
> 出力されてるらしく横幅を64バイト表示にしても65バイト目で改行されています。
> この改行コードを削除してそのまま64バイト目で改行するにはどうすれば良いのでしょうか?

どのようにエクスポートしましたか。

その手順を詳細に提示してください。

こちらで、クエリをCSVあるいは固定長でテキストエクスポートする実験をしてみましたが、
改行コードは CR+LF の2バイトになりました。

タイトルRe^16: 伝票の出力
記事No171791
投稿日: 2017/03/27(Mon) 08:59
投稿者浅草
解決済: ON
エクスポートのやり方は固定長エクスポートで区切ってエクスポートをしたのですが、
Hの行に合わせてエクスポートしたためDの行だと区切りが違うので出来ませんでした。
64バイトでエクスポートしたいのですが、出来ません。
どうすれば良いのでしょうか?

タイトルRe^17: 伝票の出力
記事No171792
投稿日: 2017/03/27(Mon) 09:21
投稿者hatena
解決済: ON
> エクスポートのやり方は固定長エクスポートで区切ってエクスポートをしたのですが、
> Hの行に合わせてエクスポートしたためDの行だと区切りが違うので出来ませんでした。
> 64バイトでエクスポートしたいのですが、出来ません。
> どうすれば良いのでしょうか?

行によって区切り位置が違うとなれば、
そもそも固定長ではないので、固定長エクスポートではむりです。

このスレッドは一旦は解決して、別の話になっているのでここでやめましょう。

もう一つのスレッドが同内容だと思われますのでそちらでつづけましょう。

タイトルRe^18: 伝票の出力
記事No171793
投稿日: 2017/03/27(Mon) 09:37
投稿者浅草
解決済: ON
わかりました。ありがとうございます。

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

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