• 締切済み

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で使用。

  • tachin
  • お礼率61% (468/759)

みんなの回答

  • rivoisu
  • ベストアンサー率36% (97/264)
回答No.2

なんかあまり聞いたことがない状況ですね。 つまり現在のExcelのファイルはそのままに追加のシステムを作りたい ということのようです。 しかもExcelのデータがとてもそのままデータベースになりにくい やっぱり先のことを考えると小手先に頼らず、きちんと正規化したテーブルを設計してAccessに実装するほうがいいと思います。 AccessからインポートするよりExcelからプッシュするほうがやりやすいと思います。(ADOで検索してください)。 つまりExcelのファイルからVBAでAccessにデータを書込みをするようにしたほうがいいでしょう、決め細かい処理が可能。 10000行程度でしたら、多少複雑な処理をしても、数分で済むと思います。 Excel側へのチェックマークのタイミングはどうでしょうか。 Accessへの書込みのときにつけるのですか、それともAccessのデータの加工時 につけるのですか。 私はExcelとAccessで開発しますが、ほとんどAccessはテーブルを設計したら、Accessを起動することはありません。すべてExcelでデータを取り出し、書込みを行うようにしています。Accessというよりデータベースエンジン(Jet)として利用しています。

tachin
質問者

お礼

 日が経ってしまい申し訳ありません。  やはりAceessをDBベースにしての開発の方がセオリー的なのかと思います。  問題は、弊社の業務そのものに帰結し、Excelでなければ見づらい、入力しづらいといったユーザのこだわりが最も大きな壁になっております。  ご教授ありがとうございました。

  • Aienn
  • ベストアンサー率0% (0/0)
回答No.1

Accessのインポート定義はどうでしょうか? インポートしたい列を選択できます。

tachin
質問者

補足

 早速のご回答ありがとうございます。  一昨日から悩んでおり、他に方法が無いかとも検討中ですが、取り急ぎの方法として先のリンクテーブルでの方法が良いと考えた次第です。    誤記がありましたので、ここで訂正させていただきます。 ×「ある一部の仕様だけをシステム化するとなると、かなり大幅な工期にもなること、」 ○「全体の仕様をシステム化するとなると、他のExcelでの管理物も考慮して、運用方針を大転換するものにもなりえることで、かなり大幅な工期にもなること、」 ×「あまり詳しく個々では」 ○「あまり詳しくここでは」 =======================    ご回答頂いた、インポート定義とは、テキストインポートウイザード画面にある設定ボタン押下にて表示される画面での設定でしょうか?。この機能ならば、以前別のツール開発をした際利用しましたが、セルの変更や読取セル(チョイス箇所)が変わる度に設定するのが難儀でもあり、忘れましたが、非常に使い勝手が悪い思いを致しました。  もし、この設定と同じものならば・・・なのですが、かなり以前、別のシステム開発で、VBとDBをAccessで開発した際、Iniファイルにフォーマット定義ファイルのようなものを作成して、これを挟む形でテーブルに読み込ませたことがありましたが、これと同じようなものでしょうか?。    私の状況お伝え致しますと、ここ6.7年ほどは開発から遠ざかってもいることで、技術面での忘却が激しいです。  大変申し訳ありませんが、引き続きご教授いただければ幸いです。

関連するQ&A

  • EXCELデータをリンクテーブルとしてACCESSで使う・・・・

    初心者ですが、よろしくお願いいたします。 顧客のデータをEXCELで管理しておりますが、ACCESSでの管理に変更します。そこで、ACCESSでの基盤となるデータなのですが、EXCELで入力して、それを毎日ACCESSのテーブルに引っ張ってくる方法をとりたいのです。過去のデータから現在のデータまで必要です。その方法なのですが、 (1)EXCELのデータをリンクしてリンクテーブルを作成。それをもとにフォームやレポートを作成・・・。 (2)削除クエリで前日の基盤のデータを丸ごと全部消してしまい、追加クエリで新データを丸ごと追加する。 ・・・と自分なりに2つの方法を考えたのですが、経験不足の為、これがベストの方法かよく分かりません。 みなさんは単純にEXCELのデータをACCESSのテーブルに毎日データを更新していくときはどのような方法をとっているのでしょうか。なにかスマートなやり方ありますでしょうか・・・。 よきアドバイスよろしくお願いいたします。

  • Access2010のリンクテーブルについて

    Access2010のリンクテーブルについて質問をさせてください。 現在、社内ではExcelシートで対応ログを残しています。 ログ入力や検索のことを考えれば、Accessへ移行するべきだと思うのですが、現在その予定はありません。また、ここで対応内容に応じて「区分」を付加していきたいと考え、以下のことを行いました。 1.ExcelシートをリンクテーブルとしてAccessに取り込み。  [対応テーブル]   ・対応NO   ・対応内容 2.今後加えていきたい区分のテーブルを作成  [区分マスタ]   ・区分NO   ・区分名 3.AccessでExcelシートは更新できないので、1と2をもとにしたテーブルを作成  [対応明細]   ・対応明細NO   ・対応NO(1と結合)   ・区分NO(2と結合)    3.のテーブルに対し、「対応NO」と「区分NO」を入力していければ、もともとのExcelファイルをいじることなく、区分を追加していけるものと考えたのですが、「このレコードセットは更新できません。」とのエラーとなってしまいます。 以前のAccessではExcelのリンクテーブルも更新できたと思うのですが、大人の事情でそれができなくなったことは認識しています。その回避策として、リンクテーブルに編集を加えるのではなく、更新用のテーブルを用意して入力していこうと思ったのですが、それもできません。 回避策がありましたらご教示いただけますでしょうか。 宜しくお願いいたします。

  • ACCESSでリンクテーブルのデータを自動取り込みしたい

    業務データの処理について、お教え願えればとご質問致します。 ACCESS2000でエクセルにリンクテーブルを設定しており、月に一度 エクセルのデータが更新されています。 手動作業で、このリンクテーブルの「すべてのレコード」を選択した後 ACCESSのテーブルに貼り付けて引き続く作業をしています。 複写するリンクテーブルの数が多いので マクロかVBAで自動的に取り込みたいのですが、  どうも良い方法が分かりません。 よい方法をご存知の方、居られましたらご教授下さい。

  • AccessにExcelのデータがリンクできない

    Office2003です。エクセルで作成したデータをアクセスにリンクしています。更新の作業は、エクセルで行っています。アクセスのテーブルを開こうとしたら、「外部テーブルのフォーマットが正しくありません」のエラーメッセージがでました。エクセルで何かしてはいけない事をしてしまったのでしょうか。

  • アクセスとエクセルのリンク

    Windows10でACCESS2019、Excel2016を使用しています。 現在、ACCESSにシステムのデータをリンクさせてまして、 簡単に加工するためにそのデータを簡易にしたクエリを Excelにピボットでリンクさせました。 ACCESSの入っていないパソコンではExcelからACCESSを 読み込まないのでruntime2010の32bitをインストールして 試みましたが、うまくいきませんでした。 どなたか解決方法を教えていただけないでしょうか?

  • Vbaでアクセスからエクセルにリンクテーブルする

    Vbaでアクセスからエクセルにリンクテーブルするには? エクセルの情報: C:\Users\Desktop¥新規 Microsoft Excel ワークシート.xlsx シート1の情報: フィールド1 フィールド2 あああ    aaa いい     iii ううう    uuu なのですが、 アクセスからVBAでリンクするにはどうすれば良いでしょう? 手作業なら 外部データ→エクセル→外部データの取り込み→リンクテーブルを作成してソースデータにリンクする でリンクできますが、vbaで行いたいです。 Sub Sample01() Dim db As DAO.Database, tb As DAO.TableDef Set db = CurrentDb Set tb = db.TableDefs("Sheet1") tb.Connect = ";DATABASE=" & CurrentProject.FullName & ";TABLE=Sheet1" tb.RefreshLink ' リンク情報の更新 End Sub このコードは意味が違いますよね エクセルのパスとシート名を指定してリンクする方法を教えてください。 最終定期にはシートをループして複数のテーブルを作成したいのです。 リンクが無理ならインポートでもOKです。

  • ACCESSでEXCELの複数のデータをテーブルに貼り付けた時、必ず貼

    ACCESSでEXCELの複数のデータをテーブルに貼り付けた時、必ず貼り付けられないデータがある。 エクセルの4行19列のデータをACCESSのテーブルに貼り付けようとしました。テーブルに主キーの設定はなく規制は全くないテーブルです。データ型はテキスト型になっておりEXCELデータと一致しています。しかし特定の1行だけが毎回貼り付かず、3行のみとなってしまいます。 しかしその1行だけを個別で貼り付けると貼りつけることが出来ます。貼り付けエラーは発生しません。 キツネにつままれたような気がして、4行のデータでしたので気付きましたが多数では気づくことが出来ず重要なデータを漏らす恐れがあるため解決したいと思います。 心当たりのある方お願いします。

  • ACCESS リンクテーブルのEXCELの起動

    ACCESSデータベース内にリンクテーブルが5個あり、 そのリンクテーブルの元は異なるEXCEL2010ファイル(ファイル名は異なりますが、列など入力項目は同じです)からリンクテーブルで作成しています。 閲覧のみACCESSで行いたい(5個の異なるEXCELをACCESS上で一つにして検索を行うため)のですが、ACCESSを起動していると、元のEXCELファイルが起動できませんでした。 リンクテーブルにしていると、リンク元のEXCELファイルは開けないものなのでしょうか? 理想は、ACCESSで誰かが閲覧&検索していてもEXCELでの入力・編集を行いたいのですが、不可能であれば、起動のみでも出来る方法など御座いませんでしょうか。 ご教授のほど、宜しくお願いいたします。

  • アクセスのテーブルのリンクで・・・

    アクセスの ”外部データの取り込み” の ”テーブルのリンク” を使って エクセルからリンクしたのですが、 エクセルに入力されている値と違う値が入ってしまいます。 例えば  1.エクセルで ”*” が アクセステーブルでは”#Num!”に    なってしまいます。(きちんと”*”のところもあるのですが)  2.エクセルで ”0” が アクセステーブルで ”#Num!”に    なっているのと ”0” になっているのと2通りになってしまう。    (”#Num!”に統一したいのですが) 対処法があったら教えて下さい。

  • Access2000でExcelからリンクしたテーブルのデータがうまく表示されません

    Excelで作成したあるワークシートをAccessでテーブルとしてリンクしたのですが、 インポートは成功したのですが、Excelで他のシートのフィールドを参照する 式を入力した一部のデータに#Num!エラーが表示されうまく表示されません。 値のみが入力されているNo.とかはうまく表示されるのですが、 計算式が入るとダメなのでしょうか? また、良い解決策はないでしょうか?