さて。今回のシステム開発で初体験だったのが、
「固定長ファイルでのImport/Exportファイルインターフェース」です。
固定長というところがはじめて。
上司には「さすが、時代。WEBアプリ開発に慣れてるからだねー」なんていわれました。
それはおいといて、開発において面倒くさいのが
「固定長ファイルのテストデータ(textファイル)を作成する」ことでした。
なんとかAccessでできないかなーと思ってついに実現
↓はExportファイルを作成するときの手法。
①DBテーブルをOracleからAccessDBにImport (テーブルAとする)
②ファイルフォーマットに従ったテーブルをAccess上に作成する (テーブルBとする)
2-1 [テーブル]の[デザイン]をクリック
2-2 各フィールドに固定長の長さ・データ型にあわせてデータ型、フィールドサイズを指定
2-3 現在日付をデフォルト値にしたい場合は、データ型:日付/時刻型を選び、規定値:=Date()を入力
③追加クエリで②で作ったテーブルBに、テーブルAから①のデータを各々のフィールドに入れる。
※データすべてはいらないな場合は、ほしいデータをWhere句条件で絞る。
④データを選択クエリでフォーマットする。(選択クエリC)
4-1 ③でデータを投入したテーブルBのすべてを選択するクエリを作る。
4-2 一部データのフォーマットをしたいフィールドに関しては、Format()関数を利用する。
※例1 日付型でYYYYMMで出したい場合:F_Application month: Format([Application month],"yyyymm")
※例2 数値型で右0埋め、小数点第4位までほしい場合:F_Requested claim amount total: Format([Requested claim amount total],"00000000000000.0000")
⑤④で作成した選択クエリCをエクスポート
5-1 クエリを右クリック→エクスポート(ファイル形式は.txt)
5-2 ウィザードで固定長ファイルを選択
5-3 ウィザード左下の[設定]ボタンをクリック
5-4 ファイルエクスポート定義のウィザードが出るので、固定長ファイルの開始地点、長さが正しいことを確認(正しくなかったらそこで修正)
5-5 保存を押下
5-6 OKを押下
でエクスポート完了。
ちなみに、さらに複数こういうファイルがあって
いちいちエクスポート作業が面倒な場合は、マクロに入れちゃいましょう。
①マクロ→テキスト変換
②変換の種類を固定長エクスポート
③定義名で5で作成した定義名をプルダウンから選択
④テーブル名=4で作成した"選択クエリC"
⑤出力先をフルパスで指定して(ファイル名まで)
⑥フィールド名出力は任意。今回の場合はいいえ。
これでデータ投入マクロ→エクスポートマクロをあわせれば、
一気にデータができます。
どうやったら固定長ファイルが自力で作れるか、
もやもやとしていたのが、泥臭いけれども
なんとか解決
0 件のコメント:
コメントを投稿