• ベストアンサー

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% (254/607)
回答No.2

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

tonkotsu0707
質問者

お礼

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

関連するQ&A

  • Access2016 フォームに入力したデータ

    こんにちは。よろしくお願いします。 Access2016で本をみながらどうにかフォームまで作成しました。 フォームにデータを入力し あとでテーブル確認すると内容が一部反映していないのは どこが悪いのでしょうか? クエリで確認すると反映されています。 フォームの作り方が悪いのか、リレーが悪いのか 例えば、フォーム内で 担当者コード 100と入力したら 自動でフォーム内に 山田と入っています。 でもテーブルで確認すると 100だけあって 山田はありません。 クエリで確認すると 100も山田も反映されています。 素人なので変な質問になっているかもしれません。 上記内容の改善策を教えて下さる方いらっしゃいましたら よろしくお願い致します。

  • Accessフォームのファイル名を変更して・・・

    お世話になります。 WIN98でAccess2000を使用しています。 (Access初心者です) 仕事でAccessにデータ入力をすることになりました。 既存のフォームに入力していくのですが、前回の データが入っているのでデータを消去しなければなりません。 とりあえず、テーブルのほうでデータをすべて削除をしました。 今度は既存のテーブル、フォーム、クエリ、レポートのファイル名を「A」から「B」に変更をしました。 ですが、フォーム、レポートを開くとファイル名は「A」のままなんです。いろんなところを見たのですが 結局わからなくて困っています。 あとはどこを変更するのでしょうか? (初歩的なことでスミマセン) それと、ExcelからAccessのテーブルへ データをインポートして、テーブルには無事データが インポートされたのですが、フォームにはそのデータが 反映されていませんでした。 インポートしたデータをフォームでも見れるようにするにはどこをいじったら良いのでしょうか? 本を見ても検索してみてもこんな初歩的な質問は無く 本当にお恥ずかしい内容なのですが、 宜しくお願い致します。

  • アクセスでフォームでレコード編集、追加不可能

    エクセル2010でデータをテーブル作成をしました。アクセス2010でインポートして、インポートしたテーブルでフォームを作成。作成したフォーム使用して、データ変更できない。初心者用のテキストでは、フォーム・クエリから、レコード追加、既存レコードの編集が可能とありました。初心者なので、教科書通りでないと、何処が、どの様になり、フォームで追加、編集が不可能か分かりませんので教えて下さい。 ※OKWAVEより補足:「ひかりTVのサービスやISPぷらら」についての質問です。

  • アクセス初心者^^; フォームで追加入力したら、クエリは?

    アクセスの初心者です。 1 追加のデータをフォームから入力したら、テーブルは自動的に追加されていましたが、それに関連した既存のクエリには自動的に追加されないようですが?反映させたい場合にはどうすればよいでしょうか。 2 また、テーブルとクエリとフォームの関係を簡潔に教えていただけたらと思います。

  • アクセスのクエリに、VLOOKを設定したい。

    質問のタイトルが正しいかどうかはわからないのですが、やりたいことは以下のとおりです。 初心者ですので、考え方自体間違っているかもしれません。ご教授ください。 アクセスにORDER DETAILというテーブルがあります。ここに、追加クエリを利用して、データを追加していけるようにしたいと思います。 その追加クエリは、ORDER DETAILに追加 という名前のテーブルからできており、このテーブルに入ったものがクエリを使うことでORDER DETAILに入るようになっています。 このとき、 1、ORDER DETAILに追加、という名前のテーブルの中身のデータは、エクセルからインポートします。何度も繰り返し使います(何度も追加する)ので、インポートのたびに、まず、テーブルの中身をすべて消してから、インポートするようにします。それから追加クエリを使って、ORDER DETAILに追加を行います。 2、このとき、エクセルのデータには、商品番号しか入っておりません。これをインポートしたとき、ORDER DETAILに追加 テーブルには、たくさんのフィールドがありますので、それを埋める必要があります。そこで、VLOOKのようなものを使用したいのです。アクセス内に、商品 という名前のテーブルがありますので、ORDER DETAILに追加 テーブルのフィールドである’DESC1'に、商品 テーブルの’Description1’を入れるようにしたいのです。このときサブクエリを使うのでしょうか?SQLでしょうか?単なるテーブルのリレーションシップで解決しないと思ったので、お尋ねしました。 詳しい方がいらっしゃいましたらどうぞお願いいたします。

  • Access データの追加について

    大変基本的なことで申し訳ありません。 Accessのデータベースを作成したあと、追加して情報を入力すると 例えば、クエリで抽出しても、加わったデータがすぐにリストに 反映されるはずだと思うのですが なぜかそれがうまくいきません。 たとえば、クエリAを作ったあとに、データBをフォームから入力して、 クエリAを開くと、そこにデータBが反映されないということはあるのでしょうか。 その場合は何が原因でしょうか。クエリの設定方法でしょうか。 データは、私のPCのみで管理しており、複数人で入力しているものではありません。 Accessが2003を使用しています。 宜しくお願い致します。

  • Access2010 更新データのレポート表示

    Access初心者です。 新規データを入力しても、レポートが更新されずに困っています。 (テーブルや、フォーム内では、データは更新されています) エクセルデータをAccess2010にインポートして、元テーブルを作成しました。 元テーブルを元に、フォーム・レポート・検索クエリ(年度別・分類別)等を作成しました。 ここまでの作業で、新規データの入力はありませんでした。 ところが・・・ 新規データをフォームに入力すると、元テーブルは更新されますが、既に作成しているレポートには、新規レコードが表示(反映)されません。 更新されている元テーブルを元に、もう一度レポートを作成しても、新規レコードは表示されません。 ホームタブの「全て更新」ボタンをクリックしても、新規レコードはレポートには表示されません。 尚、Access初心者です。 「更新クエリ」なるものは、作成していません。というか、「更新クエリ」って何?状態です。 また、クエリそのものが良くわかっておらず、作成したクエリは全て「検索」のためのクエリで、抽出条件に「 [] 」を入力したり、フィールドに「 年度: Year(DateAdd("m",-3,[発送日])) 」を入力したりしかできません。 勿論、リレーションシップって何???状態です。 どうしたらよいのでしょうか??? どなたか、初心者でもわかるように、教えていただけないでしょうか? 宜しくお願いいたします。

  • accessへのexcelデータのインポート

    友人からもらったaccess(2000)の管理表にEXCEL2003で作ったデータをインポートしたいのですが、類似質問も調べてみたのですがわからないので、教えてください。 管理表にはすでに、テーブル、クエリ、フォームが作られています。 テーブルの既存データをすべて削除して、新しいexcelデータをインポートしたいのです。 1.既存のテーブAを開き外部データの取り込みからexcelデータをウィザードに従って進めていくと、テーブルAはすでに開いていますとなり、インポートできません。 2.次に開かない状態で同様に進めて、インポート先のテーブルAを指定して完了をクリックするとインポートするときにエラーが発生し、インポートできませんとメッセージが出ます。 3.excelのシート名での新規データインポートは出来るのですが、既存のテーブルAに新しいデータのみインポートするにはどのようにすればいいのか?教えてください。 4.既存の管理表にはテーブルが20、クエリが50、レポートが13で構成されていて、その中の2つのテーブルに新規データ(約2000件)をインポートしたいのです。 まったくの素人に毛が生えた程度で思い違いもあるかと思いますが、データのみ変更してソフト自体はそのまま使用したいので、よろしくお願いいたします。 質問の内容に不足がありましたら補足しますのでよろしくお願いいたします。

  • Accessのデータについて

    Accessを使用されている方に素朴な疑問です。 自分が今この状況にあるというわけではないのですが、他の方はどうしているのだろうと思ったので質問します。 「例えば販売管理をAccessで行っているとします。何年も使い続け、売上記録などのデータがテーブルに膨大な量たまってきました。削除は出来ないが、何年も前のデータはほとんど使用していません。そろそろ過去のデータ(記録)をCD等に別に保存したいと考えています。」 CD等にテーブルの一部分だけを保存して、たまに過去のデータを現在使用中の販売管理のシステムの中で使いたい場合など、ありえることだと思うのですが、具体的にどのようなことをされてるのでしょう? エクスポート→インポート→エクスポート・・の繰返しですか? 1:別にしたいテーブルデータをクエリで抽出。 2:それをエクスポート 3:使用するときは、インポート(現テーブルに追加) 4:検索等、使用後はまたクエリでエクスポート ・・・経験はないので、私が今知る範囲の知識では上のようなとっても手間のかかる手順になったのですが。これをフォームのボタンに設定したりして。 もっと簡単に皆さんされてるのでしょうか? (WinMe、Access2000使用)

  • ACCESS ユニオンクエリはデータ編集ができない

    教えてください。初心者なので基本的なことで大変お恥ずかしいのですが・・・。 ACCESSでユニオンクエリを作成し、検索の結果としてフォーム上にデータが閲覧できるシステムを作りました。ユニオンクエリの元となる、テーブルは4つあります。 しかし、フォーム上からも、作成したクエリのデータシートビューからもデータの編集ができません。 クエリというのは、編集ができないという認識でいいのでしょうか。 データを編集するにはテーブルとしてインポートしなおして、作業するしかないのでしょうか? 何か良い方法があれば教えて下さい。

専門家に質問してみよう