- ベストアンサー
ACCESS、EXCELの限界?
ACCESS、EXCELで表示できる列数の限界について教えて下さい。 VBからの操作で、Oracleのテーブルの内容をACCESSで表示する仕組みを考えています。 Oracleのテーブルの列数が350近くもあり、ACCESSで表示することができません。CSVで出力したとしても、Excelで表示できません。どちらも255以上の列は表示できないようでした(256列以上は途切れて表示される)。 となると、Oracleのテーブルの内容をVBのグリッドに表示するしか方法はないでしょうか? もしそれしか方法が無いようであれば、グリッドに表示するか、ビューか何かを使用して表示列を絞り込む(これは最終手段にしたいです)かどちらかにしなければなりません。 一番いいのは、そのままACCESSに表示することなんですが。テキストで延々と出力するだけでは、データの編集がやりにくいので困っています。 よろしくお願いいたします。 開発環境は、Win2000(SP2)、Oracle8.1.6、VB6.0(SP3)、OFFICE2000(SR-1、SP2)です。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
項目数の制限という意味では質問にかかれている通りでしょう。 以前、Accessで扱ったレコードに1レコード500項目くらいのファイルがあり、下記の様にしたのを覚えています。 [主レコードテーブル:項目B1、項目B2、・・・・、B_ID] [Subレコードテーブル1:B_ID、項目S1-1、項目S1-2、・・・・] [Subレコードテーブル2:B_ID、項目S2-1、項目S2-2、・・・・] [Subレコードテーブル3:B_ID、項目S3-1、項目S3-2、・・・・] 項目のインポートは作りこみでした。(固定長ファイルの各項目の属性、桁数等の項目定義ファイルを作り、VBでそれを参照する手順) Accessの限界という意味では1Gバイトの方が切実な問題でした。 最初は全テーブルを1つのmdbで管理していましたが、日々、データ量が増え、将来的な不安があり数個に分割し定期的に不要なレコードを別テーブルに移しています。 Excelにおとす時はユーザーは全項目を見たいことは無かったので255の壁は余り意識しませんでした。 それよりもExcelの限界という意味ではレコード数でしょうか。個人的には数百件あるとExcelを使う気になりませんが現実には10000件くらいを目処にExcelにおとしたりもしています。余り多いと間違いも起きますし。扱いづらくなります。 もし項目数がExcelの列数よりも多いなら、Sheet1、Sheet2、Sheet3・・・と分割すると思います。ただ、これは実行したことはありません。 参考にならないかもしれませんが、何年か前の体験談です。(VB6.0、Access97、Excel97です)
その他の回答 (3)
- ARC
- ベストアンサー率46% (643/1383)
1:OlacleからCSV形式で出力する。 2:ExcelでVBAマクロを組む。CSVファイルをテキストとして読み込んで、複数のワークシートにまたがって出力する、みたいな感じの。 フィールドが350もあるんですから、それを幾つかのグループに分割することは可能でしょう。で、グループごとに一つのワークシートを割り当てるようにすれば、機能面でも使いやすくなるんじゃないかなぁ。 シート選択時に、前のシートで操作していたレコード位置と同期を取るようにするとかすれば、ある程度使えるようになるんじゃ… あ、でもこの方法、データの編集だけなら対処できるけど、データの追加/削除まで絡んでくると厄介ですね。
お礼
ARCさんどうもありがとうございます。 そうですね。最初はACCESSで行こうと思ってたのですが、EXCELでも使い勝手よさそうですね。データの追加と削除については、現在考えていません。 最初は、ACCESSかEXCELの設定で、たとえば、「列を255以上表示する」オプションみたいのがあるかと思ってたのですが、皆さんのご回答でどうやらそれは無理だということがわかりました。 ご回答どうもありがとうございました。
- yuhki_f
- ベストアンサー率32% (32/99)
ACCESS,EXCELとも列数は255あたりです。 それ以上の列数を扱うときはACCESSなら別テーブルに、EXCELなら別シートにもっていくしか方法がありません。
お礼
yuhki_fさんどうもありがとうございます。出勤前にお礼を書いてます。 ACCESS、EXCELともに、255柵越え計画はあきらめることにします。後はグリッド表示か、別テーブルか、別シートかにします。 ご回答どうもありがとうございました。
- TAGOSAKU7
- ベストアンサー率65% (276/422)
どもども田吾作7です。 編集するということから想像するとマスタデータを作成しようしてるのでしょうか? Access、Excelは普段使っているから、それが一番使い勝手がいいですもんね。 しかし、そういった桁の限界もあるのは逃げ出すこと出来ない事実。。。 どうしても、一度に行いというのであれば、あえてAccess・Excelをやめてみては? >VBのグリッドに表示するしか方法はないでしょうか? とありますが、リンク形式でしているならば参考にならないかもしれませんが・・・ インポート、エクスポートはSQL一文で済みますよね?一度CSVに落として、フリーのCSVエディターを使用するなんて反則ですか?ベクターの中にありますよ。 CSVで検索したらたくさん出てくると思います。
お礼
田吾作7さん、どうもご回答ありがとうございます。 やはり、どうやってもACCESSやEXCELでは無理みたいですね・・・。情報ありがとうございます。 フリーのCSVエディタは早速明日(今日)試してみます。そうですね。最終的には使い勝手の話になるかと思いますので、だめだったら、VB標準のグリッドか、文化オリエントのTrueDBGridにでも埋め込んでみます。 話はそれますが、エディタってとても個人色強いですよね。私はいろいろ使ってみましたが、今はEmEditor3で落ち着いています。それが、VBとかアプリに組み込まれると、結構みんな使ったりするんですよね。面白い現象です。 ご回答どうもありがとうございました。
補足
私の質問分の開発環境に一部間違いがありました。 >開発環境は、Win2000(SP2)、Oracle8.1.6、VB6.0(SP3)、OFFICE2000(SR-1、SP2)です。 ↓ 開発環境は、Win2000(SP2)、Oracle8.1.6、VB6.0(SP5)、OFFICE2000(SR-1、SP2)です。 です。ほとんど影響はないと思いますが、念のためにです。お願いします。
お礼
nishi6さん、ご回答どうもありがとうございます。 やはり、列数の制限は外せないですよね・・・。 ACCESSやEXCELでの分割もいいかもしれませんね。特に、EXCELのSheet分割はやってみる価値がありそうです。どうもありがとうございます。 幸い、トランザクション的な扱いを考えていますので、件数は大量にはならない予定です。 255列という制限は、Office製品ならまだ何とか納得できますが、PersonalOracleでもだめだったんですよね。もちろんこれは開発用ですが。 ご回答どうもありがとうございました。