• 締切済み

400列ほどの固定長テキストデータの作成

400列ほどの固定長テキストデータを作成できる、何か良い方法がないでしょうか? アクセスを使って、データベースを組みだしたのですが、 途中で、テーブル、クエリの最大フィールド数が255列だとわかって、 他の方法も含めて、いろいろ探してみたのですが良い方法が見つかりません。 以前にエクセル2007のアドイン(フリーのもので名前は忘れました)で、データを加工して提出したことはあるのですが、入力をする人が難しくてわからないということで、ボツになってしまいました。 ○フィールド数は400列ほど ○固定長データで提出 ○できれば1つのソフトで、無理でしたら2つ以上のソフトでも良いので、専門知識のない人でも、 入力からエクスポートまでできるように ○今あるソフトは、アクセス2003、エクセル2007で新しいソフトの購入は難しい。 (1万円程度までなら、何とか出してもらえるかも) アクセスで、200列ほどのクエリを2つ作成して、2つの固定長データをエクスポートして、 2つをうまく結合できる方法があれば良いのですが・・・・ 行き詰ってしまっているので、どなたかご教授いただければ助かります。

みんなの回答

  • lv4u
  • ベストアンサー率27% (1862/6715)
回答No.2

>>400列ほどの固定長テキストデータを作成できる、何か良い方法がないでしょうか? 一般的には、データ内容を分析して、データベースの「正規化」を行って、複数のテーブルに分割しますね。この過程で1つのテーブルの項目数は、ちいさいものになると思います。で、入力画面を作成してテーブルに入力する。最後にクエリで1つにまとめて1件が400項目の固定長テキスト出力ができる流れになると思います。 もちろんプログラムができていれば、専門知識の無い人でも入力からエクスポートまで操作可能ですね。 アクセス2003があればできますので追加プログラムの購入費用はゼロですが、データベース正規化、入力画面の作成、固定長テキストの出力プログラムなどのプログラミングができる知識が質問者さんに必要ですね。

  • nag0720
  • ベストアンサー率58% (1093/1860)
回答No.1

「400列ほどの固定長テキストデータ」とはどういう意味でしょうか? 固定長データとは、1件の長さが決まっているデータで、そこには列という概念はありません。 もし項目と項目との間に区切り文字があるのなら、固定長にする意味がありません。 それとも、項目の長さが固定長ということでしょうか? それとも、単に400列のテキストデータという意味でしょうか? まあいずれにしても、VBAを使えばアクセスでもエクセルでもテキストファイルに出力可能です。 VBAを使ってはだめなのですか。

関連するQ&A

  • 400列ほどの固定長テキストデータの作成

    400列ほどの固定長テキストデータを作成できる、何か良い方法がないでしょうか? アクセスを使って、データベースを組みだしたのですが、 途中で、テーブル、クエリの最大フィールド数が255列だとわかって、 他の方法も含めて、いろいろ探してみたのですが良い方法が見つかりません。 以前にエクセル2007のアドイン(フリーのもので名前は忘れました)で、データを加工して提出したことはあるのですが、入力をする人が難しくてわからないということで、ボツになってしまいました。 ○フィールド数は400列ほど ○固定長データで提出 ○できれば1つのソフトで、無理でしたら2つ以上のソフトでも良いので、専門知識のない人でも、 入力からエクスポートまでできるように ○今あるソフトは、アクセス2003、エクセル2007で新しいソフトの購入は難しい。 (1万円程度までなら、何とか出してもらえるかも) アクセスで、200列ほどのクエリを2つ作成して、2つの固定長データをエクスポートして、 2つをうまく結合できる方法があれば良いのですが・・・・ 行き詰ってしまっているので、どなたかご教授いただければ助かります。

  • ACCESS2000 固定長テキストのインポート

    ACCESS2000で固定長テキストデータをINPORTしたいのですが、うまくいきません。 テキストインポートウィザードの[設定]で[定義]ボタンを押して、呼び出してきた定義(フィールドの情報)を追加修正したのち、INPORTを行おうとしています。 ところが、追加修正した定義(フィールドの情報)を保存できず、困っています。 いざ[保存]を押すと、ボタンを押した時点で入力した情報がすべてなくなってしまう(入力前の状態に戻ってしまう)のです。 だから、インポート/エクスポート定義を保存したいのですが、保存できない状況に陥っています。 フィールドの数が非常に多いデータのため、途中で保存し再呼び出しという作業がどうしても必要になります。 回避の方法をご存知でしたら教えてください。 例えば、インポート定義そのものを利用しなくても、固定長テキストデータをACCESSへINPORTする方法があれば、それでも結構です。 よろしくお願い致します。 なお、当方はACCESS初心者なので、VBAなど難しいことはできればしたくありません。

  • Accessで文字列を連結しフィールドを作成するには?

    アクセスのクエリーでテーブルから2つの文字列フィールド引っ張ってきて、その文字列データをくっつけることがやりたいのですが、どのようにやったらよいのでしょうか? ちなみにExcelの場合はCONCATENATE関数で2つのセルを 1つのセルにまとめることが可能です。アクセスで関数を見てみたのですが、そのような関数はありませんでした。 誰かよい方法があれば教えていただけませんか? よろしくお願いします。

  • 固定長データのテキストファイルのスペースについて

    固定長データのテキストファイルをExcelで読み込むと、スペース部分が前詰めされてしまいます。 スペースもそのままカラムとして読み込む方法はありませんでしょうか。 例えば次のような固定長データがあるとします; No.  項目名   タイプ   桁数 1    コード    文字    6 2    状態    文字    10 テキストファイルで開くと下記のような表示です(以下、便宜上スペースを”_”で表します); data011________1 data02_________1 data03____1_____ これをExcelにて固定長フィールドのデータとして読み込む際、 フィールドの区切り位置として6カラム目と16カラム目に矢印を置き 全てのフィールドを文字列として読みこむとExcelでは下記のように表示されます;       A列   B列    1行目  data01 1________1 2行目  data02 1 3行目  data03 1 ここで、B2セルとB3セルがそれぞれ _________1 ____1_____ とスペースを保持したままの形で読み込む方法はありませんでしょうか。 手動でもVBでもかまいません。ご教示頂ければ幸いです。

  • ACCESS クエリ テキスト入力後データ表示

    ACCESS クエリ テキスト入力後データを表示させたい 基本的な事ですが教えてください。 Access2010でクエリを作成しています。 データはexcelからリンクしています。 Excelデータは、A~F列、1~300行(1行目は項目行)あるとします。 データのリンクは問題なしでした。 A列には4~7桁の数字が入っており、重複はありません。 作成しているクエリは、A列にある番号をテキストボックスで手入力し、それと一致した行のデータB~F列を表示させる、というものです。 今までデータが少なかったのでA列をリストボックス、もしくはコンボボックスにしてB~F列を表示させていました。この方法はわかります。 しかし今回300行と多いのでテキストボックスに手入力し、一致した行のデータB~F列を表示させることが初めてで設定方法がわかりません。本もリストボックス、もしくはコンボボックスからの検索ばかりで載っていません。 初期的な質問かと思いますが、どうかできるだけ簡単な言葉で教えてくださいませんでしょうか? 宜しくお願い致します。

  • Access2003 クエリで、空の列は作れますか?

    Access2003で、クエリを作成しています。 その作成したクエリを、Excelにエクスポートして編集作業を行います。 Excelでの編集作業で、新たに列を3列ほど挿入する必要がありますが、出来ればクエリの段階で、タイトル名だけ付けて、3列空けた状態にしておきたいです(挿入列も、連続で無い為)。 しかし、ただ単に列を挿入することができません。 無理なのでしょうか?

  • ACCESSのデータをEXCELに・・・

    Access97を使用しています。 ほぼ初心者に近いです。 会社で請求書のシステムを作成中です。 パラメータクエリを使用して例えば始まり「02/10/15」終り「02/12/15」と入力すればその期間の請求書データを抽出できるようになっています。 テーブルを増やしたくないのでそのパラメータクエリを使用して抽出したデータをExcelにエクスポートしたいのですが・・・いろいろ調べてみましたがわかりません。(モジュールに関数を作って、フォーム上でコマンドボタンを作成しそれをクリックすれば関数が動いてエクスポートと同時にExcelのファイルが出来上がるようにしたくて試みているのですが。) VBAでもかまいませんので出来る方法がありましたら教えてください。 よろしくお願いします。

  • Access2010で「列の固定」等ができない

    いつもお世話になっております。 以前にAccess2000(OSはWindowsXP)で作成した売上管理ソフトをAccess2010上で動かしており(OSはWindows7)、動作は問題ないのですが、Access2000のときは簡単にできた列の固定がAccess2010ではフィールドの固定で設定してもそのときはうまくいきますが、ソフトを終了すると、元の順に戻ってしまいます。 具体的には、納品書のサブフォームの「商品コード」、「品名」、「数量」・・・・「規格」・・・というフィールドを並び替えて、「商品コード」、「品名」、「規格」、「数量」・・・・・・・という順にしたいのです。 納品書画面上で、個々のフィールドを順番に右クリックして、「フィールドの固定(Z)」を左クリックして順番を変え、そのときはうまくいきますが、この変更を記憶していないようでソフトを終了すると、元の順に戻ってしまいます。 また、品名フィールドの幅を広げようと、隣のフィールドとの境にカーソルを当て、ドローしても、やはりそのときはうまくいきますが、この変更を記憶していないようでソフトを終了すると、元の幅に戻ってしまいます。 品名フィールドを右クリックして、「フィールド幅(F)」を設定してもやはり変更を記憶してくれません。 どなたか対処方法をご存じの方がおられましたら、是非御指導をお願い致します。

  • アクセス作成について

     アクセスについて質問します。  フォームで入力する場合で、例えばテーブルのレコードを100までとし、101を超えた場合またレコード1にデータを入力することは可能でしょうか。 テーブル フィールド1 フィールド2  1       6  2       8   .      .   .      . 100       55 フィールド1は固定し、フィールド2にデータを入力していき101番目にデータを入力する時はまた1行目の6を上書きしてデータを更新していくようなことは可能でしょうか。(もちろんフィールド1、フィールド2を別テーブルとしクエリーを活用することでもok) アクセス初心者です。よろしくおねがいします。

  • EXCELでデータの更新した後の列幅を固定したい

    EXCELからデータの更新(!マークで実行するやつ)で、ACCESSのクエリーの結果をEXCELに取り込んでいるのですが、 EXCELの列の横幅を狭くしておいて、"縮小して全体を表示する"にしてあるのですが、データを更新すると列幅が、 ACCESSで定義してあるフィールドサイズに広がってしまいます。 (テキスト型でフィールドサイズ50だと、MSゴシックで全角25文字ぐらいの列幅に) データの更新時に、列幅が自動で広がらないようにする事って出来るのでしょうか? (マクロで全部の列の列幅を定義しておいて、データの更新後にマクロ実行して列幅を戻すのは出来ると思いますが、  マクロで後で調整しなくても方法ってあるのでしょうか?) EXCELは2003で、ACCESSは97を使っています