Microsoft Access 掲示板

【緊急】フォームを開いても何も表示されません【ホラー】

9 コメント
views
4 フォロー

お世話になります😀

1ヶ月くらい開いてなかったAccdbファイルを開き、その中のフォームを使用しようとしたところ(しようしよう煩いですね🤨)、開いても真っ白のフォームしか開きません😱😱😱
誤ってオブジェクトのプロパティの可視を「いいえ」にしてしまったのだと思いデザインビューで確認を行いましたが、「はい」になっていました🧐
デザインビューには配置したオブジェクトが表示されていましたので、フォームビューでだけ表示されないようです…😥
全てのフォームが真っ白になってしまったわけではなく、問題なく表示されるフォームもあります👍
真っ白になってしまったのは、コンボボックスで選んだ担当者で抽出を行い、その担当者だけのレコードを印刷プレビュー表示するフォーム、もうひとつは、文字数が多いレコードを抽出し、別のフィールドに文字を振り分けを行うフォームです😊
普通に表示されるのは、TrimとかStrConvとかのクエリをまとめて実行するボタンがひとつだけあるフォームです😴
一体何が原因なのでしょうか
久しぶりにフォームを開いた後に行った操作は、レコードを全て削除し、新たにレコードを追加したくらいです😏
原因と解決方法を知りたいです、何を試してもだめで困っています😭😭😭

Muramasa
作成: 2023/11/09 (木) 16:27:51
最終更新: 2023/11/09 (木) 16:49:16
通報 ...
1
hiroton 2023/11/09 (木) 17:25:03 67b2d@f966d

フォームのプロパティで読み込み時にフィルターを適用プロパティが「はい」になってるとかかな?

2
Muramasa 2023/11/10 (金) 08:41:02 7fdfc@46fae >> 1

hiroton様
そちらのプロパティを確認しましたが、「いいえ」になっておりました😖😖😖

3
hiroton 2023/11/10 (金) 10:37:05 f57d3@f966d

ナビゲーションウインドウから直接フォームを開いても同じ症状ですか?
フォームにはVBAのコードが組み込まれていますか?
その場合、一度すべてのコードを削除して開いてみるとどうですか?(フォームそのものをコピーして試すと安全です)

5
Muramasa 2023/11/10 (金) 11:05:29 7fdfc@46fae >> 3

毎回ナビゲーションウィンドウからフォームを開いています。
担当者別にレポートを表示するフォームには、担当者を選択するコンボボックスと、レポートを表示するボタン、それからレポートを閉じるボタンがあり、それぞれのボタンにはVBAのコードがありますが、フォームが開けない原因としては考えにくいと思います。
レコードの文字を別フィールドに振り分けるフォームには、振り分けが終わった後に更新するためのRequeryボタンがあり、そちらにVBAのコードが記述されています。
削除してみましたが、結果は変わらずでした。

4

フォームのレコードソースのクエリをナビゲーションウインドウから直接開いた場合、レコードは表示されますか。
また、そのクエリでデータの入力や更新はできますか。

6
Muramasa 2023/11/10 (金) 11:07:53 7fdfc@46fae >> 4

担当者別に表示するフォームの方は、レコードソースに誤りがあったので、正しいレコードソースに変更したところフォームを開くときちんとオブジェクトが表示されるようになりました。
文字数を調整するフォームの方ですが、レコードソースのクエリにレコードはありませんでした。
抽出条件で設定している文字数を超えるレコードがなかったためだと思います。

7
hiroton 2023/11/10 (金) 11:53:19 f57d3@f966d

どちらのフォームも「表示するデータがなかったから表示がなかった」ですかね?(hirotonの回答もそれを想定してのものですが)

ACCESSの基本仕様ではあるんですが、レコードが一切表示されない=ヘッダーに設置した抽出用の非連結のテキストボックスも使えなくなる等、副作用が厄介で、メイン-サブフォームにして抽出機能は親フォームで実装、サブフォームに明細表示だけを実装なんてことをよくやりますね

8
Muramasa 2023/11/10 (金) 13:02:33 7fdfc@46fae >> 7

担当者別にレポートを表示するフォームのレコードソースが、なぜか文字数調整のフォームのレコードソースになっているクエリと同じだったので、本来レコードソースにしたかったテーブルに変更したところ表示されるようになりました。
文字数調整用のフォームはレコード数が0だったので表示されないままだったということみたいですね。

このような不具合を出さないようにするにはフォームの構成に一工夫いるということですね。勉強になります。

9

連結フォームで、レコードソースはテーブルか更新可能なクエリの場合、下記の設定・状況の場合、詳細セクションのコントロールが表示されず真っ白になります。

「追加の許可」プロパティが「いいえ」
レコード件数が0(表示するデータがない)

新規レコードは追加しないという仕様のフォームの場合でレコード件数が0の場合は、そもそも何もすることがないのでフォームを開くこと自体無意味になります。

フォームの「開くとき」イベントでレコード件数が0の時は適切なメッセージ(例えば「表示するレコードがありません」)を表示させて開くのキャンセルしてはどうでしょうか。そうすれば、真っ白なフォームが表示されてびっくりするということはなくなります。

コード例

Private Sub Form_Open(Cancel As Integer)
    If Me.Recordset.RecordCount = 0 Then
        MsgBox "表示するレコードがありません!"
        Cancel = True
    End If
End Sub

新規レコードを追加するのを許可するフォーム(追加の許可=はい)ではこのような現象はおきません。