アプリ版:「スタンプのみでお礼する」機能のリリースについて

Access初心者です。
よろしくお願いいたします。

Accessを使用して引継ぎをしたいと考えておりますがどのように作成したらよいか分からず悩んでおります。
アドバイスをよろしくお願いいたします。

まずメニュー画面があり登録画面と確認画面を作ります。
登録画面の内容は
日付、表題、内容の三項です。

次に悩んでいる確認画面です。
イメージは添付の画像のような形を考えております。

まず左側に登録してある日付を一覧で表示し、見たい内容の日付を選択すると右側に内容の一覧が表形式で表示されるようにしたいです。

以上のようなことを行うにはどのようにすればよいでしょうか?
※左側はテキストボックスを使用して…など

ざっくりとした質問ですみませんがよろしくお願いいたします。

「Accessを使用して引継ぎ」の質問画像

A 回答 (5件)

メインとなるフォームの中にサブフォームを2つ(日付一覧と内容一覧)作ってみてはどうでしょう。


ただ、登録日付が順次増える等を考えると、イメージ画像のような日付ボタンでは難しいと思いますので、
若干イメージとは異なりますが日付一覧もリストで表示するようにしてはいかがでしょうか?

具体的には、登録テーブルを作成します。内容は日付(日付型)、表題(短いテキスト型)、内容(長いテキスト型)の3項目と仮定します。
「登録テーブル」を基にクエリを2つ作ります。
Q_クエリ1:テーブルの日付のみを表示させ、日付をグループ化しておきます(同一日付で、複数の内容がある場合もあるので)
Q_クエリ2:テーブルの3つの内容を表示させるようにします

次にサブフォーム(イメージ画像の左右2つのフォーム)を作ります。
F_サブ1:帳票形式のフォームを作り、テキストボックス(Tx_日付とします)を1つ配置し、その横にボタンを1つ配置します(選択ボタンとします)。
     ボタンを配置するとウイザードが動きますがキャンセルしてボタンだけにしておいてください
     レコードソースにQ_クエリ1を指定し、Tx_日付のコントロールソースは「日付」にします
F_サブ2:帳票形式のフォームを作り、テキストボックスを2つ配置します(Tx_表題、Tx_内容とします)
     レコードソースにQ_クエリ2を指定し、Tx_表題、Tx_内容のコントロールソースをそれぞれ「表題」、「内容」にします

メインとなるフォーム(F_フォームとします)を作成し、デザインツールからサブフォームを選んで、左右に2つ配置します。
ウイザードでは左側にはF_サブ1、右はF_サブ2を選択します。次の名前の指定では例えば左をサブフォーム1、右をサブフォーム2とします。

Q_クエリ2をデザインビューで開き、「日付」の下の抽出条件に [Forms]![F_フォーム]![サブフォーム1]![Tx_日付] と記述します。

F_サブ1に配置した「選択ボタン」のクリック時イベントでマクロビルダーを開き、以下のようにマクロを設定します
 ・オブジェクトの選択
    オブジェクトの種類:フォーム
    オブジェクト名:F_フォーム
 ・コントロールの移動
    コントロール名:サブフォーム2
 ・再クエリ
    コントロール名:空白のまま

これでメイン(F_フォーム)を開くと、左に日付が並んで表示されますので、
必要な日付の横にある選択ボタンをクリックすれば、右にその日付の表題と内容がリスト表示されます。

日付の横に配置したボタンの代わりに、フォームヘッダを表示させて、そこにボタンを1つ配置し、
そのボタンのマクロを上記と同様にすれば、1つのボタンで同じ動作をさせることが出来ます。
ただし、この場合は、一度日付を選択(クリック)して、フォームヘッダのボタンを押す必要があります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
大変助かります。

ただ初歩的な質問で申し訳ありませんがサブフォームにテキストボックスを配置が出来ません…
サブフォームを作ったのですがその上にテキストボックスを配置しようとするとサブフォームの裏に隠れてしまい見えません。
どのようにすればよいのでしょうか?

お礼日時:2017/06/28 18:07

>空白のレコードまでF_サブ2で表示されてしまうのですがこれは無くせないのでしょうか?



新規レコードのことでしたら、F_サブ2のプロパティで「追加の許可」を「いいえ」にすれば表示されなくなります。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

無事に思っていたものが出来ました。
本当にどうすればよいか困っていたので助かりました。
ありがとうございました。

お礼日時:2017/07/05 00:14

クエリとフォームの連結が上手くいっていないような感じがします。


確認ですが、Q_クエリ1をデザインビューで開いた時、上段にはテーブル1が表示され、
下段はフィールド:日付、テーブル:テーブル1、集計:グループ化 なっていますでしょうか?

次にF_サブ1ですが、デザインビューで開いた時、
フォームのプロパティシートで 既定のビュー:帳票フォーム、データタブの レコードソース:Q_クエリ1
詳細に配置したテキストボックスのプロパティシートで、データタブの コントロールソース:日付
になっていますでしょうか?

同様にQ_クエリ2ではフィールドに日付、表題、内容の3つがあり、日付の抽出条件に先に書いた[Forms]![F_フォーム]!・・・
があり(Q_クエリ2では集計は行っていないので、グループ化とかはないです)、
F_サブ2の表題と内容のコントロールソースがそれぞれ「表題」、「内容」になっていますでしょうか?

>またサブフォーム1、サブフォーム2の中にあるテキストボックスはレコードの件数が増えるたびに増えていくのでしょうか?

テーブル1に登録したレコード件数によって増減します。
サブフォーム1(日付)は、同じ日付が複数あっても1つだけ表示されます。
例えば 7月2日の日付で表題1(内容1)、表題2(内容2)と2つのレコードが有った場合、
サブフォーム1の日付表示は7月2日が1つ、サブフォーム2の内容表示は上記の2つが表示されるイメージです。
「Accessを使用して引継ぎ」の回答画像4
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

もう一度ご指摘頂いた箇所を見直したら数か所間違っている箇所がありました。。
訂正するとちゃんと表示されました。
ご迷惑をお掛けいたしました。

もう少しだけ質問すみません。
空白のレコードまでF_サブ2で表示されてしまうのですがこれは無くせないのでしょうか?

お礼日時:2017/07/04 00:22

>デザインビューではちゃんとサブフォーム1が見えるのに、フォームビューにすると消えて見えなくなります。



消えて見えなくなるというのは、「レコードが何も表示されない」ということなのでしょうか?
それともサブフォーム1のコントロール自体が何も見えなくなるということなのでしょうか?

以下の点について確認してみていただけませんか?
・テーブルにはレコード(日付、表題、内容のデータ)が1件以上あるか
・Q_クエリ1、Q_クエリ2を直接開いた時、内容が表示されるか?
 (Q_クエリ2の抽出条件に記述した Forms]![F_フォーム]!・・・ は削除しておいてください)
・F_サブ1、F_サブ2を個別にフォームビューで開いた時、Q_クエリ1、Q_クエリ2の内容が表示されるか?
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

>消えて見えなくなるというのは、「レコードが何も表示されない」ということなのでしょうか?
それともサブフォーム1のコントロール自体が何も見えなくなるということなのでしょうか?
⇒サブフォーム1が表示されない状態です。

>・テーブルにはレコード(日付、表題、内容のデータ)が1件以上あるか
⇒テストとして3件入力してあります。

>・Q_クエリ1、Q_クエリ2を直接開いた時、内容が表示されるか?
⇒内容は表示されております。

>・F_サブ1、F_サブ2を個別にフォームビューで開いた時、Q_クエリ1、Q_クエリ2の内容が表示されるか?
⇒同じようにデザインビューで表示はされますがフォームビューでは表示されません。

何が原因なのでしょうか?

またサブフォーム1、サブフォーム2の中にあるテキストボックスはレコードの件数が増えるたびに増えていくのでしょうか?
まだ完成のイメージが出来ておらずすみません。

お礼日時:2017/07/02 21:13

サブフォームと表現しましたが、F_サブ1、F_サブ2共に通常のフォームと考えてください。


名前がF_サブということだけで、通常にフォームを作成し、その詳細部分にテキストボックスを配置するということです。

メインのF_フォームに配置した「デザインツール」のサブフォームコントロールに
このF_サブを表示させるという感じです。
    • good
    • 0
この回答へのお礼

回答遅くなり申し訳ございません。

教えて頂きましたように作成致しました。
ただ別の問題が発生し、調べたのですが解決出来ませんでした。

デザインビューではちゃんとサブフォーム1が見えるのに、フォームビューにすると消えて見えなくなります。

なぜなんでしょうか?
すみませんが教授宜しくお願い致します。

お礼日時:2017/06/30 15:13

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!