- 締切済み
ExcelデータをAccessにてリンクテーブルで操作するにあたり
大容量のExcelデータをAccessにて、リンクテーブルで取り込み、処理をしたいと考えております。 現在、Excelにてデータ管理をしており、その量が常に1万行を超えております。ExcelデータをDBに移行し、プログラムを組んで新たなシステム開発をと考えておりましたが、このExcelデータは、様々な作業の元ネタともなっており、ある一部の仕様だけをシステム化するとなると、かなり大幅な工期にもなること、技術者確保が現在無理であること、運用をいきなり変えるということが不可能なことで、どうしても現在のExcelデータをベースにして一部の処理をシステム化する(ツールレベルになるでしょう)程度でしか、今は開発ができないと察しております。 そこで、Excelデータを取り込み、そこから必要なデータだけをチョイスして、全体作業の中の一部の作業だけを簡略化しようとしております。 取り込んだ後、チョイスして加工するわけですが、例えば、ある行は「処理済み」と言う形で、Excelの当該行にチェックを書込む処理も必要になります(現在は手作業なので)。 よって、インポートするよりもリンクテーブル化したほうが、都合のいい開発が出来るのでは?と考えております。 問題は、インポートの場合は、読込行の指定が可能なようですが、リンクテーブルの場合、不可能とのこと。 何か方法があればご教授して頂きたいと存じます。 元データとなるExcelですが、1行30セルほど。 読取開始行は、4行目からですが、4行目以降の行が不規則で、一つのまとまりごとに、コメントや合計値を算出している行を挟んでおります。 例) No、管理No、発注者、取引先、商品名、金額、数量・・・・・・ この行が例えば3つ有り、その次の行にコメントや合計値が記載。1行空けてみたり、数行空けてみたりして、次から改めてNo、管理No、発注者、取引先・・・・のように続きます。 あまり詳しく個々では書けませんが、よろしくお願い致します。 Accessは、2000ないしは2003。Excelは2000ないしは2003を利用。 利用者は1人を対象にしてますが、Excel自体は、現在3~5人で同時利用している状態です。 OSはXP。主にノートPCで使用。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- rivoisu
- ベストアンサー率36% (97/264)
なんかあまり聞いたことがない状況ですね。 つまり現在のExcelのファイルはそのままに追加のシステムを作りたい ということのようです。 しかもExcelのデータがとてもそのままデータベースになりにくい やっぱり先のことを考えると小手先に頼らず、きちんと正規化したテーブルを設計してAccessに実装するほうがいいと思います。 AccessからインポートするよりExcelからプッシュするほうがやりやすいと思います。(ADOで検索してください)。 つまりExcelのファイルからVBAでAccessにデータを書込みをするようにしたほうがいいでしょう、決め細かい処理が可能。 10000行程度でしたら、多少複雑な処理をしても、数分で済むと思います。 Excel側へのチェックマークのタイミングはどうでしょうか。 Accessへの書込みのときにつけるのですか、それともAccessのデータの加工時 につけるのですか。 私はExcelとAccessで開発しますが、ほとんどAccessはテーブルを設計したら、Accessを起動することはありません。すべてExcelでデータを取り出し、書込みを行うようにしています。Accessというよりデータベースエンジン(Jet)として利用しています。
- Aienn
- ベストアンサー率0% (0/0)
Accessのインポート定義はどうでしょうか? インポートしたい列を選択できます。
補足
早速のご回答ありがとうございます。 一昨日から悩んでおり、他に方法が無いかとも検討中ですが、取り急ぎの方法として先のリンクテーブルでの方法が良いと考えた次第です。 誤記がありましたので、ここで訂正させていただきます。 ×「ある一部の仕様だけをシステム化するとなると、かなり大幅な工期にもなること、」 ○「全体の仕様をシステム化するとなると、他のExcelでの管理物も考慮して、運用方針を大転換するものにもなりえることで、かなり大幅な工期にもなること、」 ×「あまり詳しく個々では」 ○「あまり詳しくここでは」 ======================= ご回答頂いた、インポート定義とは、テキストインポートウイザード画面にある設定ボタン押下にて表示される画面での設定でしょうか?。この機能ならば、以前別のツール開発をした際利用しましたが、セルの変更や読取セル(チョイス箇所)が変わる度に設定するのが難儀でもあり、忘れましたが、非常に使い勝手が悪い思いを致しました。 もし、この設定と同じものならば・・・なのですが、かなり以前、別のシステム開発で、VBとDBをAccessで開発した際、Iniファイルにフォーマット定義ファイルのようなものを作成して、これを挟む形でテーブルに読み込ませたことがありましたが、これと同じようなものでしょうか?。 私の状況お伝え致しますと、ここ6.7年ほどは開発から遠ざかってもいることで、技術面での忘却が激しいです。 大変申し訳ありませんが、引き続きご教授いただければ幸いです。
お礼
日が経ってしまい申し訳ありません。 やはりAceessをDBベースにしての開発の方がセオリー的なのかと思います。 問題は、弊社の業務そのものに帰結し、Excelでなければ見づらい、入力しづらいといったユーザのこだわりが最も大きな壁になっております。 ご教授ありがとうございました。