- ベストアンサー
Access2016 外部データを
こんにちは。よろしくお願い致します。 エクセルデータをインポートしましたところ(追加データとして) テーブルには反映されるのですが クエリやフォームには追加したデータが反映されません。 どこが悪いのでしょうか? お分かりになられる方、ご教示くださいませ。 よろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
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節だと推察します。
その他の回答 (1)
- chayamati
- ベストアンサー率41% (260/624)
お早うございます。 直感ですがクエリに抽出条件が入っていませんか クエリーのレコードソースのテーブル名は正しいですか
お礼
こんにちは。気づくのが遅れて申し訳ありません。 教えていただいた事、確認してみます。 今後ともよろしくお願い申し上げます。
お礼
ご丁寧にありがとうございます。 初心者なので、回答の言葉の意味さえわかりません。 ひとつひとつ調べながら、やってみます。 わからなければ、また改めてご質問するかもしれません。 よろしくお願い申し上げます。