• ベストアンサー

Access2016 外部データを

こんにちは。よろしくお願い致します。 エクセルデータをインポートしましたところ(追加データとして) テーブルには反映されるのですが クエリやフォームには追加したデータが反映されません。 どこが悪いのでしょうか? お分かりになられる方、ご教示くださいませ。 よろしくお願いいたします。

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

  • ベストアンサー
回答No.1

Q、どこが悪いのでしょうか? A、SQL文。  Access は、テーブルとクエリやフォームが一体になっています。が、ビジネスアプリケーションでは、それを不離一体で利用することはしません。サーバーにテーブルだけのAccessデータベースを用意してバックエンドとします。そして、ユーザのPCにメニュー、フォーム、レポート等のバックエンド・データベースと通信するアプリケーションを配置します。フロントエンドと呼ばれるやつです。このフロントエンドのアプリケーション群が、バックエンド・データベースへのデータ入力、データの演算、データの出力の3つを担当します。 >エクセルデータをインポートしました。 ってことは、サーバーに存在するバックエンド・データベースが更新されたに過ぎません。本来であれば、フロントエンドのインポートアプリケーションが担当する仕事。まあ、それはよしとして・・・。更新されたデータベースのデータの演算と出力は、これまたフロントエンドのアプリケーションの役目です。 >クエリやフォームには追加したデータが反映されません。  ならば、フロントエンドのアプリケーション(=フォーム)が役目を果たせていないってことです。 >どこが悪いのでしょうか?  さて、フロントエンドの各アプリケーションは、如何にしてバックエンドのデータを取得しているのか?そこんところを理解していれば、自ずと問題個所は見えてくるのだが・・・。 >SQLは、データの操作を行うための問い合わせ言語である。  質問者も知っていると思うが、Access はバックエンドのデータを操作するのにSQLという問い合わせ言語を利用しています。フォームでは、その《レコードソース》に書く文です。添付図では >SELECT 商品台帳.ID, 商品台帳.商品名 FROM 商品台帳; となっています。悪いのは、このSQL文ですよ。 PS、WHERE節が適切であれば、更新は反映される筈! SQL文1:SELECT * FROM 商品台帳; SQL文2:SELECT * FROM 商品台帳 WHERE 商品台帳.ID=1;  SQL文1は、WHERE節を書いていません。ですから、常に全てのデータを取得・表示します。SQL文2は、WHERE節で取得するデータに制限をかけています。この場合には、更新が反映されるとは限りません。どこが、問題かと言えば、SQL文のWHERE節だと推察します。

tonkotsu0707
質問者

お礼

ご丁寧にありがとうございます。 初心者なので、回答の言葉の意味さえわかりません。 ひとつひとつ調べながら、やってみます。 わからなければ、また改めてご質問するかもしれません。 よろしくお願い申し上げます。

その他の回答 (1)

  • chayamati
  • ベストアンサー率41% (260/624)
回答No.2

お早うございます。 直感ですがクエリに抽出条件が入っていませんか クエリーのレコードソースのテーブル名は正しいですか

tonkotsu0707
質問者

お礼

こんにちは。気づくのが遅れて申し訳ありません。 教えていただいた事、確認してみます。 今後ともよろしくお願い申し上げます。

関連するQ&A

専門家に質問してみよう