• 締切済み

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

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

みんなの回答

回答No.3

ナンバー1です。 400列ほどの固定長テキストデータを作成できる方法はいろいろ考えられますが、入力をする人が難しくてわからないと言われるとその人のスキルがわからないので難しいです、さらに使い方もわからないのとサポートする人のスキルとどの程度サポートしていられるのかもわかりません。ですので回答が難しいです。 お礼に書かれた(1)はその通りです。(2)はAccessで入力画面を作ってもいいですし直接テーブルに入れてもいいです。 (3)はDATファイルに吐き出すVBAを作ればいいです。 他の方法でも例えばExcel2007ならば400列でも扱えますから、Excelで入力し、DAT出力するVBAを作ればよいです。Excelの入力規則で固定文字数にすればサポート側は楽ですが入力する方は指定文字数になるように空白を入れなければならないので面倒です。入力規則の替りに一般式のLenやLeftを組み合わせれば入力者は文字数を意識しないで入力し、DAT出力の際に固定文字数にできます。

ise_form
質問者

お礼

さらに詳しく、ご教授いただき、ありがとうございます。 せっかく、いろいろ教えていただいているのですが、 知識不足で、解決ができなくて、まだまだ悩んでいる状態で、 さらに、ご教授いただければ、幸いです。 アクセスのVBAは経験がないのですが、勉強しながらでも 完成させたいと思っています。 方向性としては、 アクセスでテーブルを作りかけていることと 入力フォームがアクセスの方が自由度が高いので、 できればアクセスだけで、処理できる方が良いです。 (2)の方法ですが、データを入力するたびに デザインビューでフィールドを増やしていくということでしょうか? (通常の入力と比べて、フィールドとレコードが入れ替わっているため) もし、そうでしたら、入力者もアクセスの基礎知識が必要になってきますので、 難しそうです。 他にこの場合の1件1件のデータの入力方法があるのでしたら、教えていただきたいです。 今まで教えていただいた内容から考えると、200列からなる2つのテーブルを作成して リンクさせる方が良いような気がするのですが、その場合について質問です。 (3)のDATファイルに吐き出すVBAですが、 具体的にどのようなものになるのでしょうか? 例えば テーブル1 ID 実施年 月 日 氏名 フリガナ 生年 月 日 試験1実施有無 結果 評価 試験2実施有無 結果 評価 ・ ・ ・ ・ 試験100実施有無 結果 評価 試験102実施有無 結果 評価 (200列まで) テーブル2 ID 試験101実施有無 結果 評価 試験102実施有無 結果 評価 ・ ・ ・ 総合評価 (400列まで) ※フィールド名は実際とは変えてあります。 このような場合、具体的な記述例がわかれば 助かります。 SQLと組み合わせてするのでしょうか? 入力は別の者がするので、 アクセスのボタンにマクロを登録するなどの方法で、 簡単に出力できれば、一番良いです。 (私はSQLは基本くらいならわかりますが、VBAは、ExcelのVBAは捜査の記録を編集するくらいしかしたことがなく、アクセスのVBAは、全く経験がないので、勉強しながら作ることになります。)

  • bin-chan
  • ベストアンサー率33% (1403/4213)
回答No.2

> 以前にエクセル2007のアドイン MS QUERYでしょう。

ise_form
質問者

お礼

ありがとうございます。 アドインは、固定長でエクスポートする機能を持ったもので、 違うものだった気がします。 各フィールドの先頭に、格納する値の種類と長さを、記述しなければいけなかったです。 これが、フィールドの変更などの時に、理解してもらえる人がいなくて、仕事がまわらなくて ボツになりました。 教えていただいたMS QUERYも、一度確認してみます。

回答No.1

Access2003でできます。 突き詰めれば次の1テーブルがあればOKです。 ID 列番号 列データ 次のようにしてもOKです。 テーブルA ID 列1 列2 ・ ・ ・ 列200 テーブルB ID 列201 列202 ・ ・ ・ 列400 テーブルAtoBをリンクしたクエリを作ればいいです。

ise_form
質問者

お礼

早速、ご解答いただき、どうもありがとうございます。 アクセスも基本知識しかわからないので、掘り下げて質問させていただきます。 (1) ID、列番号、列データ という3つのフィールドを持ったテーブルを作成して、 400件のレコードとして、400列のフィールド名を入力するということでしょうか? もし、それで合っていたら、 (2)その後データを入力するのには、何かのクエリを使うのでしょうか? (3)エクスポート前のクエリは、255列を越えていても、扱えるのでしょうか? さらに、具体的な流れを教えていただければ、助かります。

関連するQ&A