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

このQ&Aのポイント
  • 顧客のデータをEXCELで管理しておりますが、ACCESSでの管理に変更します。EXCELのデータをリンクしてリンクテーブルを作成し、フォームやレポートを作成します。
  • EXCELのデータをACCESSのテーブルに毎日データを更新する方法について、考えた方法は2つあります。1つ目はEXCELのデータをリンクしてリンクテーブルを作成し、2つ目は削除クエリで前日の基盤のデータを消して新データを追加する方法です。
  • 経験不足のため、どちらがベストの方法かわからないため、他の方々のスマートなやり方を知りたいです。
回答を見る
  • ベストアンサー

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

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

質問者が選んだベストアンサー

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.1

Accessでは通常のISAMでは外部テーブルのレコードの削除が禁止されています。削除しようとするとエラーになります。新規レコードの追加は可能ですけど。 そのため >EXCELで入力して、それを毎日ACCESSのテーブルに >引っ張ってくる方法 これだとAccess側でテーブルの取り込みをしてExcelで当日のレコードを削除するような処理になってしまうのではないでしょうか。 顧客のデータをEXCELからACCESSでの管理に変更するのであればAccessのみで当日のレコード入力からテーブルへの保存までした方が良いのではと思います。 Excelをリンクテーブルとして使用する仕様のものは構築したことはありませんが・・・。 あくまでも私見ですが マスタテーブルとしてExcelを使うなら良いと思います。通常の処理をExcelでしてAccessに保存するのは余分な処理手間がかかるので一つにした方が開発するのに簡単ではないでしょうか。 AccessにExcelのレコードを取り込むのでしたらエクスポートしてテーブルに追加するモジュールかマクロを使えば出来ます。(Excelのレコードの削除はできませんが)

関連するQ&A

  • リンクテーブルの件

    いつも参考にさせていただいてます。 EXCELのデータをACCESSの既存テーブルに取込みたくて、リンクテーブルを作成いたしました。 そしてここからいろいろ調べると 「Excelリンクテーブルからアクセステーブルへの追加クエリを作成する」のがいい方法だと伺いました。 しかし私は初心者なのもでやりかたがわかりません。 ぜひ教えて頂きたいです。

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

    よろしくお願い致します。 Access側から外部テーブルを参照したリンクテーブルを作成しました。 しかしそのテーブルを開くのにはすごく時間がかかり、時にAccessが応答なしの状態になったりします。 そこで、ためしにテーブル作成クエリでリンクテーブルのデータと同じデータをもつテーブルを作成しました。 すると、そのクエリで作成したテーブルからの操作はスムーズに行われました。リンクテーブルとはデータ量も同じなのにこのように重さの違いがでるのはなぜなのでしょうか? Accessを使いはじめたばかりで、裏ではどのようになっているのかよくわからずパフォーマンスのあげ方に四苦八苦しております。 アドバイスをよろしくお願いします。

  • accessでテーブルのリンクでクエリに反映させる方法を教えてください

    accessでテーブルのリンクでクエリに反映させる方法を教えてください。 現在2つのエクセルデータを比較するクエリを作成したのですが、 比較するデータが大量にあり、テーブルのリンクでクエリに反映させたいのですが、 うまくいきません。 よろしくお願いします。

  • ACCESS テーブルの正規化

    EXCELデータで以下のような正規化されていない項目のデータをACCESSに取り込んで顧客毎に商品の数量を計算するクエリを使用しています。 顧客ID|顧客名|商品名1|商品名2| ・・・・・・・ XXXXX ○○○       2      3  ・・・・・・・ XXXXX ○○○       2      3  ・・・・・・・・ XXXXX ○○○       2      3  ・・・・・・・・ 商品名が可変で追加されたり、削除されたりするのですが、今までは集計の都度クエリを作成していたため問題はありませんでしたが、今回クエリからレポートとフォームを作成するように指示がありました。自分が集計の都度クエリを作成出来ない環境になったため、事前にクエリを組んでフォーム、レポートを作っておきたいのですが、可変な項目名の集計クエリを作成する方法はあるでしょうか? 私のイメージでは 顧客ID|顧客名|商品名 数量 XXXXX ○○○  商品1  2 XXXXX ○○○  商品2  1 XXXXX ○○○  商品3  3 このように正規化出来ればよいと思います。 ACCESSにはテーブルの正規化機能がありますが、操作方法を読んでみるとやはり事前に項目を指定して作成するように読み取れました(間違っているかもしれませんが) 何か良い方法があれば教えてください。 EXCELのVBAは多少書けるのですが、ACCESS VBAはあまり得意ではありません。 自分でメンテナンス出来るように、出来ればクエリで作成したいのですが無理でしょうか? よろしくお願いします。

  • アクセスで同一テーブル内へのデータの追加

    こんにちは。Access2000を使用しています。 「顧客テーブル」には「お買上げ年度」と「顧客名」フィールド があります。 「お買上げ年度」= "2007"の顧客を、「お買上げ年度」 = "2008" として「顧客テーブル」内に追加したいのですが、一度仮テーブル やCSVファイルにデータを退避することなく、クエリやVBA(ADO)で 対応することは可能でしょうか?(=同一テーブル内への追加クエリ を実行したい。)よろしくお願いいたします。

  • Accessで多くのExcelファイルをリンクしてテーブルを作ろうとするととエラーが出ます

    Access2007で、複数のExcelファイルをリンクテーブルとして参照し、 UNIONで結合して1つのテーブルにまとめ、様々な処理をしています。 リンクするExcelファイルの数がだんだん増えてきて、 50個になったところでエラーが出るようになりました。 ユニオンクエリは正常に開くことができるのですが、 テーブル作成クエリで「クエリが複雑すぎます」と表示され、 テーブルが作成できません。 ユニオンクエリでは全てのリンクテーブルをUNIONで繋いでいます。 テーブル作成クエリはユニオンクエリをSELECT...INTOでテーブルにしているだけです。 参照するExcelファイルは今後も増えていって最終的には120個くらいまで 増やるかもしれないということで、 どうしていいかわからず困っています。 何かいい方法をご存知の方、教えていただけないでしょうか。

  • Accessでテーブルのリンクを新規テーブルに保存

    ExcelのデータをAccessのテーブルでリンクしています。 そのデータをクエリで必要なレコードだけを抽出します。 抽出したデータのみを新規テーブルとして保存したいんですが、保存の仕方がわかりません。 Access2000です。 どうかよろしくお願いします。

  • パスワード付Access2010からリンクテーブル

    パスワード付Access2010のテーブルを別のAccessでリンクテーブルとして使用しています。 このリンクテーブルを使ったクエリの結果を、ADOを使ってExcelシートに書きだしたいのですが、このリンクテーブルを使ったクエリを動かすと 「SQLステートメントが正しくありません。DELETE、INSERT、PROCEDURE、SELECTまたはUPDATEを使用してください」 というエラーメッセージが出てしまいます。 リンクテーブルのあるAccessでクエリを動かすと普通に動くのですが、ExcelからADOで動かすとエラーがでるということです。 このような場合に、エラーにならずにExcelからクエリを動かして結果をシートに出力する方法が何かありますでしょうか。 ご教授よろしくお願いいたします。

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

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

  • アクセステーブル、リンクとローカルで違いはある?

    Access2003からSQLServerにリンクテーブルを張ったアプリケーションの作成をしています。 本番リリース時にはすべてのテーブルがリンクテーブルになる予定ですが 開発時にはローカルテーブルで開発をしたいと考えています。 理由は、DBにテスト用のゴミデータを追加したくないことと、 セキュリティの関係で接続出来るマシンが限られるためです。 現状の開発方法としては、 テーブルに一度リンクを張り、テーブル追加クエリでローカルにテーブル構造とデータを退避。 手動で主キーを定義して、そのテーブルを実体をみなして開発をしています。 SQLレベルではローカルテーブルもリンクテーブルも同等の扱いだと思っているのですが 何か制限事項などがあるのであれば教えていただきたいです。 なお、ACCESSからはDBを参照するのみで追加・更新は一切無しません。 追記。 クエリからクエリを参照して、さらにSQL内でサブクエリも記述しています。 その為、度々「クエリが複雑過ぎます。」みたいなメッセージが表示されています。 複雑というより無駄に長いだけだったりするのですが、 ローカルテーブルなら発行出来たのに、 リンクテーブルは発行出来ないなどあれば開発に支障が出ますのでよろしくお願いします。

専門家に質問してみよう