こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Access2016 外部データを

こんにちは。よろしくお願い致します。

エクセルデータをインポートしましたところ(追加データとして)
テーブルには反映されるのですが
クエリやフォームには追加したデータが反映されません。

どこが悪いのでしょうか?

お分かりになられる方、ご教示くださいませ。
よろしくお願いいたします。

投稿日時 - 2018-10-31 17:09:44

QNo.9553188

困ってます

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

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節だと推察します。

投稿日時 - 2018-10-31 20:20:32

お礼

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

投稿日時 - 2018-11-01 08:43:50

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

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

投稿日時 - 2018-11-01 08:43:17

お礼

こんにちは。気づくのが遅れて申し訳ありません。
教えていただいた事、確認してみます。

今後ともよろしくお願い申し上げます。

投稿日時 - 2018-11-01 13:57:49

あなたにオススメの質問