みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

解決済みの質問

Access2010 更新データ反映のレポート印刷

質問の仕方が悪かったようなので、もう一度質問いたします。

Access初心者です。
新規データを入力しても、レポートが更新されずに困っています。

エクセルデータをAccess2010にインポートして、元テーブルを作成しました。
元テーブルを元に、フォーム・レポート・検索クエリ(年度別・分類別)等を作成しました。

データが入力されているテーブルは、この元テーブルのみです。それ以外のテーブルはありません。従って、全てのクエリは、この元テーブルを元に作成しております。

フォームを作成しているときに、コンボボックスを作成し、コンボボックスのコントロールソースは、全て、その場で作成しました。(コンボボックス用のテーブルは作成していない)

また、郵便番号から住所を入力できるように設定してあります。



ここまでの作業で、新規データの入力はありませんでした。
ところが・・・

新規データをフォームに入力すると、元テーブルは更新されますが、元テーブルを元に既に作成しているレポートには、新規レコードが表示(反映)されません。
しかし、レポートフッターに設定してある「Count(*)」は、新規レコードを含んだ数字を返しています。


更新されている元テーブルを元に、もう一度レポートを作成しなおしても、新規レコードは表示されません。

ホームタブの「全て更新」ボタンをクリックしても、新規レコードはレポートには表示されません。



どうしたらよいのでしょうか???
どなたか、初心者でもわかるように、教えていただけないでしょうか?
宜しくお願いいたします。

投稿日時 - 2013-06-26 10:36:27

QNo.8150369

困ってます

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

ACCESSの中心的存在がリレーションシップです。

先ずこの機能を理解して下さい。

リレーションシップの実態を見てみましょう
【データベースリボン】⇒【リレーションシップ】
これで添付のようなリレーション図が表示されます。
新規にテーブルを追加したときは、リレーション図の任意の位置で右クリックして
テーブルを追加表示して、関連付けする項目を対のテーブルの関連項目にドラッグします
関連付けの仕方に「結合の種類」で
 1.両方のテーブルにあるものだけ(規定値)
 2.一方のテーブルの全てと他方のテーブル
 3.他方のテーブルの全てと一方のテーブル
これで規定値だと一方のテーブルに登録するだけでは、フォーム、レポートには反映されません
※規定値はそのままにしておいて下さい
 テーブルでデータを登録するときは一方を入力する流れで、他方も登録することになります。
 またフォーム設計で、ウィザードでサブフォームを持つフォームを作成できます。


見積書をイメージしてください。
見積書には
1.見積No.、見積日、取引先情報等の表紙部分(以下見積表紙と呼ぶ)
2.品名、数量、単価、金額等の行が複数行ある明細部分(以下見積明細と呼ぶ)

リレーションシップとは
 この見積表紙と見積明細は1対Nの対のものですこれを関連つけする手法です。

リレーションシップを設定

見積表紙テーブル
・ID(オートナンバー型)主キー
・見積No.
・見積日
・取引先名

見積明細テーブル
・ID(オートナンバー型)主キー
・見積表紙ID(数値型)
・品名
・数量
・単価

見積表紙のIDと見積明細の見積表紙IDをリレーション設定します、

表示されないもう一つの原因は
 フォームに抽出条件に合うレコードが無いからでは
-------------------------------------
>元テーブルを元に、フォーム・レポート・検索クエリ(年度別・分類別)等を作成しました。
検索クエリーを実行すると期待通りのデータが表示されますか
元テーブルに年度、分類というフィールドは定義されていますか

フォームの元データはテーブルでも検索クエリーでも構いません。

投稿日時 - 2013-06-26 14:44:41

お礼

丁寧な説明ありがとうございました。
リレーションシップ、なんとなく解りました。

本当に理解するまでに、暫く(試行錯誤しながら)時間がかかりますが、頑張ってみます。

ありがとうございました。

投稿日時 - 2013-06-26 15:26:09

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

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

回答(1)

あなたにオススメの質問