- ベストアンサー
Access 2007で最新のデータをフォームに表示する方法
- Access 2007のフォームで最新のデータを表示する方法について教えてください。重複しない新しい日付のデータのみを表示したいです。
- 初心者向けに、Access 2007のフォームに最新のデータを表示する方法を分かりやすく教えてください。
- Access 2007でフォームに表示するデータを最新のものに絞り込む方法をお教えください。重複するデータを除外し、新しい日付のデータのみを表示したいです。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
まずはQ抽出を元にフォームをつくってみます。 その前に、二つのクエリを登録します。 まず、Tdataをテーブルとして設定しておいてください。 これは質問のテーブルとします。 次に、 (1) 新しいクエリをデザインビューで開き、SQLビューに します。その中に書いてあるものをすべて削除し、 SELECT Tdata.記号, Max(Tdata.出荷日) AS 出荷日の最大 FROM Tdata GROUP BY Tdata.記号; をコピーし張り付けます。デザインビューに戻し、 保存します。そのとき名前の記述を求められるので QMaxとします。 (2) 同様に、新しいクエリを立ち上げ、(1)と同じ手順で SELECT Tdata.* FROM Tdata INNER JOIN QMax ON (Tdata.出荷日 = QMax.出荷日の最大) AND (Tdata.記号 = QMax.記号); をコピーし張り付け、Q抽出として保存します。 (3) データベースウィンドウでフォームを選択し、 新規作成を選択し、もとになるテーブルまたはクエリ でQ抽出を選択し、オートフォーム表形式を選択し、 OKとします。適当に名前をつけて、これでフォームができます。 今回の場合はフォームは選択されたレコードを参照するだけですから レコードの更新等はできません。保存して終了です。 (4) 次に、フォームをデザインビューで開きます。 すると、フォームの左上隅に黒い点があります。 この点の上でマウスを右クリックして、プロパティを 選択します。プロパティシートが表示されるので、 すべてを選択し、レコードソースにQ抽出が 表示されているのを確かめてください。 ここには他のテーブルやクエリなどを登録 することができます。 プロパティシートを閉めて、フォームの詳細の下 のところに記号、出荷日、送り先などのテキスト ボックスがあるのを確認してください。 デザインビューではこのテキストボックスの 大きさ、長さをマウスで設定できます。 保存して閉じます。 以上で、フォームの出来上がりです。 本来は、フォームのデザインビューだけを立ち上げ、 フォームのレコードソースを設定し、それをもとに フォームにテキストボックスを設定し、テキスト ボックスのコントロールソースをフォームの レコードソースから選択し、データを表示したり 書き込んだりするというのがオーソドックスな やり方です。今回はここまでいろいろフォームを いじくって確認してください。テキストボックスの プロパティなども確認してコントロールソースを 確認してください。 何かあれば書き込んでください。
その他の回答 (4)
- piroin654
- ベストアンサー率75% (692/917)
今、回答の続きをと思っていたら、 できた、ということでひとまず 安心しました。説明がよくなかったかな と思っていたので不安でした。 では。
お礼
ありがとうございます! できた時はとても感動しました 初心者の私にはとても心強いです これからも度々質問するかと思いますが宜しくお願いします。
- piroin654
- ベストアンサー率75% (692/917)
テーブルをTdataとします。二つのクエリ作成。 QMax SELECT Tdata.記号, Max(Tdata.出荷日) AS 出荷日の最大 FROM Tdata GROUP BY Tdata.記号; Q抽出 SELECT Tdata.* FROM Tdata INNER JOIN QMax ON (Tdata.出荷日 = QMax.出荷日の最大) AND (Tdata.記号 = QMax.記号); Q抽出を開く、で合ってると思うのですが。
補足
早速の回答ありがとうございます。 これで出来そうな気がします! ですが、まったくの初心者で、このヒントをクエリのどこに入れたらいいのか~??? お手数かけますが、もう少し分かり易くお願いします。
- HRI-Sankou
- ベストアンサー率32% (64/199)
A列 B列 C列 1行 記号 出荷 届け先 2行 A 5/3 東京 3行 B 5/2 京都 4行 C 5/2 大阪 5行 A 4/25 新潟 6行 B 4/10 沖縄 7行 C 4/3 奈良 の場合で考えました。 E1セル A F1セル B G1セル C E2セル =IF($A2=E$1,$B2,"") E2セル の式を E2セル から G7セル に コピー E11セル =MAX(E2:E9) E11セル の式を F11セル と G11セル に コピー E12セル =IF(E11>0,MATCH(E11,E2:E9,0),0) E12セル の式を F12セル と G12セル に コピー E16セル =IF(E11>0,MATCH(E11,E2:E9,0),0) E16セル の式を E17セル と E18セル に コピー B16セル =IF($E16>0,INDEX(B$2:B$9,$E16,1),"") B16セル の式を B16セル から C18セル に コピー
補足
早速の回答ありがとうございます。 これはアクセスでできるのでしょうか? エクセルの関数のように見えますが・・・ アクセスでデーター処理をしたいのですが・・・
- aokii
- ベストアンサー率23% (5210/22062)
記号順及び出荷日順に並べて、記号が上の行と同じなら、表示しない。
補足
早速の回答ありがとうございます! なるほど! それで、そうするには、どうすれば良いのですか?
お礼
できました! 今、やっとできました! ありがとうございます。 SQLビュー始めての体験で感動しました! ありがとうございました。
補足
分かり易い回答をありがとうございます。 アドバイスのとおりのサンプルデーターテーブルを作って 作業をすすめると私の望んでいた物ができました! でも、実際に私が作ってるテーブルに置き換えてアドバイスのとおりにするのですが エラーになってしまいます「入力テーブルまたはクエリが見つかりません・・・」と表示されます サンプルのTdataを自分のテーブル名に置き換えてるのですが~ 何故でしょうか? 前に進めないでいます^^;