No.1ベストアンサー
- 回答日時:
添付画像のように単一のフォームで横に表示するのは無理(左は帳票またはデータシート、右は単票です。
詳細エリアに混在はできない。)だと思うのですが、上下レイアウトでよく、今ターゲットがあるレコードの詳細表示でよい というのであれば、すぐに出来ます。方法は、
1.該当のフォームの規定のビューを「帳票フォーム」にします。
2.備考と内容フィールドをフォームのフッターなり、ヘッダーに移動します。
それ以外のフィールドは「詳細」に置きます。
完成です。
これではよろしくない、クリックして表示し、次をクリックするまでそれを保持したいというのであれば、単票形式の別フォームを準備する方法になるかと思います。
その程度なら、VBAがわからなくても、マクロでナントカなりそうですが。
流れは「閉じる(別フォームを。前の分が開いているかもしれないので)」「フォームを開く(Where条件付)」「元フォームをアクティブにする」だけ。
No.2
- 回答日時:
> このような動作をさせるプログラムを、VBAで作れますか?
もしも幾つかの前提条件を掛けてもよいようでしたら、
プログラムは(殆ど)使用せずに、ご希望の動作をさせることが
できるかと思います。
つまり、
1)赤枠で囲んだ部分の表示には、「サブフォーム」ではなく
(複数列を表示させる)「リストボックス」を使用
2)青枠で囲んだ部分の表示には「サブフォーム」を使用し、
サブフォームのリンク親フィールドとして、上記「1」の
リストボックスを使用
とすることでVBA/マクロを一切使用せずに、リストボックスの
クリックで右側の表示内容の切替が可能になります。
※こちらの環境(Win XP&Access2003)で確認済。
但し、環境によっては(?)、リストボックスの更新後イベント
での、サブフォームの「再クエリ(Requery)」だけは、必要に
なるかもしれません(汗)
必要となる前提条件は、
・赤枠部分は、別のフォームで編集
(この画面では追加/編集/削除は不可)
・赤枠部分の各列の列幅は、ユーザーは変更不可
(フォームのデザイン時に設定した幅で固定)
となります。
上記前提でよければ、以下の手順で対応できます:
1)当該テーブルをレコードソースとするフォームを新規作成
し、「内容」「備考」等を表示するテキストボックスを設置
※青枠内のサブフォーム用
2)新規フォームをデザインビューで開く
(こちらはレコードソースは指定不要)
3)リストボックスを追加し、プロパティシートで以下を設定:
○『書式』タブ
・『列数』=「3」 (No.、年月日、件名の3列)
・『列幅』=適宜調整(例えば「1cm;2cm;5cm」等)
※各列の幅を「;」(セミコロン)で区切って指定。
○『データ』タブ
・『値集合ソース』=上記3フィールドのみを表示する
クエリを予め作成しておき、ここにその名前を指定
(または、プロパティシートの上記欄にカーソルを
置いた時に右端に表示される『ビルダ』を使用
して、ここでクエリ(SQL文)を作成してもOk)
・『連結列』=「1」 (「No.」フィールドが主キーなど、
レコードの特定できるデータであると推測)
4)サブフォームを追加し、プロパティシートで以下を設定:
○『データ』タブ
・『ソースオブジェクト』=「1」で作成したフォームの名前
・『リンク子フィールド』=「No.」
・『リンク親フィールド』=「2」で作成したリストボックスの
名前
※親フォームのレコードソースが空白の場合、リンク親
フィールド/リンク子フィールドで『ビルダ』を使用すると、
「非連結フォームにリンクを作成することはできません」
とのエラーが表示されますが、ビルダを使用せずに手で
直接入力してやればOkです。
5)フォームを保存して閉じる
・・・以上です。
なお、リストボックスで値を選択してもサブフォームの内容が
切り替わらない場合は、
1)リストボックスのプロパティシートで、『イベント』タブを選択
し、『更新後処理』にカーソルを移動
2)右端に表示される『ビルダ』(「...」のボタン)をクリック
3)『ビルダの選択』ダイアログが開くので、「コードビルダ」を
選択して『OK』ボタンをクリック
4)Visual Basic Editor(VBE)画面が開くので、以下を入力:
(先頭と末尾の計2行は自動で入力されるので、中央の
1行のみ手入力すればOk)
Private Sub リストボックス1_AfterUpdate()
(サブフォーム名).Requery
End Sub
※「(サブフォーム名)」には、実際のサブフォームの名前
(ソースオブジェクトではなく、プロパティシートの『その他』
タブの『名前』に表示される方)を入力。
(前後の「( )」は無用。「Requery」の前に「.」(ピリオド)が
必要なので注意)
と、1行だけVBAを追加すれば、切り替わるようになります。
(VBAなしでサブフォームの表示が切り替わるなら不要です)
【参考】
赤枠部分もデータの更新が必要な場合は、そちらもサブフォームに
した上で、その『レコード移動時』イベントを使用してやれば
(→ここにはVBAが必要)、同様に対応できます。
(リストボックスの代わりに非表示のテキストボックスを設置し、
リンク親フィールドとします。
赤枠側のレコード移動時にその「No.」をここに記録し、それと
同時に、青枠側のサブフォームを、上記の通り再クエリ)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
最強の防寒、あったか術を教えてください!
とっても寒がりなのですが、冬に皆さんがされている最強の防寒、あったか術が知りたいです!
-
コーピングについて教えてください
皆さんはストレスを感じたとき、どのような方法や手段、テクニックで対処していますか?
-
14歳の自分に衝撃の事実を告げてください
タイムマシンで14歳の自分のところに現れた未来のあなた。 衝撃的な事実を告げて自分に驚かせるとしたら何を告げますか?
-
Access サブフォームでの選択行の取得
その他(データベース)
-
ACCESSの表形式で、レコードをクリック→詳細を表示させたい
その他(データベース)
-
Accessのサブフォームから値を参照する方法について
その他(データベース)
-
-
4
Accessのフォームにて、詳細行のボタンを行の内容により、表示/非表
その他(Microsoft Office)
-
5
ACCESS フォームからサブフォームのデータを更新・入力したい
Access(アクセス)
-
6
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
7
親・子リンクフィールドの設定は、どうすればよいのでしょうか。
その他(Microsoft Office)
-
8
Access コンボボックスの値をクリアしたい。
PowerPoint(パワーポイント)
-
9
新規レコード行を非表示にしたい
Access(アクセス)
-
10
ACCESSで値を代入できないとは?
Visual Basic(VBA)
-
11
ACCESSのフォームからデータの追加ができない
その他(データベース)
-
12
ACCESS 複数のフォームから同一テーブル参照
Access(アクセス)
-
13
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
14
Accessで、フォームからフォームへ値を引き継ぐやり方
Access(アクセス)
-
15
Access2010 「演算子がありません」エラー
その他(データベース)
-
16
サブフォームのイベント取得
Visual Basic(VBA)
-
17
SQL文で パラメータが少なすぎます エラー
Access(アクセス)
-
18
[Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには
Access(アクセス)
-
19
アクセスでテキストボックスの値が空白だったら
Access(アクセス)
-
20
フォームで入力しても反映されない
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access サブフォームでの選択行...
-
アクセスでサブフォームのレコ...
-
サブフォームでフィルタしたデ...
-
Access 複数フォームを...
-
Access2000、これはいったい・...
-
単票フォームと帳票フォームを...
-
複数項目でのサブフォームとの...
-
Accessのサブフォームから値を...
-
ACCESSでサブフォームの...
-
サブフォームでのダブルクリッ...
-
ACCSESS2013VBA フォームのレコ...
-
access サブフォームにリストを...
-
Access2000 サブフォームのReco...
-
サブフォームが見えなくなる。
-
レコードセットで得た結果をサ...
-
サブフォームのデータを保存す...
-
Access VBA acCmdSelectRec...
-
(ACCESS)条件に応じて、テキ...
-
Accessでのフォーム表示がうま...
-
Accessでタブの設定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access2000、これはいったい・...
-
メインフォームとサブフォーム...
-
Access 複数フォームを...
-
(ACCESS)条件に応じて、テキ...
-
ACCSESS2013VBA フォームのレコ...
-
access サブフォームにリストを...
-
2回目に画面のレコードセットの...
-
Access2000 サブフォームのReco...
-
サブフォームが見えなくなる。
-
Accessのサブフォームから値を...
-
初心者です。accessで請求書を...
-
Accessで、一覧からクリックし...
-
Access VBA acCmdSelectRec...
-
ACCESSでfilterとorderbyについて
-
Accessでのフォーム表示がうま...
-
サブフォームでフィルタしたデ...
-
アクセスでサブフォームのレコ...
-
サブフォームのデータを保存す...
-
AccessのFormのみをスクリーン...
おすすめ情報