次の方法で共有

Accessナビゲーションフォームでサブフォームのフィルター更新について

Anonymous
2013-10-06T06:32:58+00:00

Access2010のナビゲーションフォームについての質問です。

サブフォームをデータシートビューで表示して、メインフォームの条件によりサブフォームのフィルター切り替えで表示を更新するものを、

ナビゲーションフォームに乗せたところ、他の移動ボタンのクリック時に「サブフォームを保存しますか?」と聞かれるようになってしまいました。

(動作は問題なく、条件通りのフィルタで表示しています)

色々調べたのですが、ナビゲーションフォームでなく通常のフォームを外側に作成すると問題ないので、

ナビゲーションフォームの場合フィルターを更新してもサブフォームはリアルタイムで保存されず、

切り替わるときにメッセージが表示されてしまうようです。

サブフォームが保存されないのは何か原因があるのでしょうか?

また最悪、保存メッセージだけ回避したいのですが、回避方法をご存じないでしょうか?

P.S.

移動ボタンのクリック時に強制的にメッセージを出さないようにしようと思いましたが、

移動ボタンのClick、メインフォーム/サブフォームのUnloadよりも先に保存メッセージが出てしまうのでダメでした。

よろしくお願いいたします。

Microsoft 365 と Office | アクセス | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2013-10-08T10:30:50+00:00

MukkuMuku様

原因がわかりましたのでご連絡します。

サンプルプログラムを新規に作成、とお話していたのですが、

テーブルとサブフォームに関しては手を抜いて既存のものを改造していました。

全く新規に作成したところ、保存確認メッセージが出なくなったため差異を確認したところ、

メッセージが出る方のサブフォームプロパティ「読み込み時に並べ替えを適用」が"いいえ"になっており、

これを"はい"に変更したところメッセージが出なくなりました。

このプロパティと保存確認メッセージの関連は分からないのですが、

とりあえずご報告まで。

お手数をおかけして申し訳ありません。ありがとうございました。

P.S.

Filter と Order に関しては解決しましたが、

本物のシステム開発に関しては、サブフォームフィールドの"ColumnHidden"制御も行っています。

この変更に対しても保存確認メッセージが出てしまうのですが、

こちらはパターンが少ないので別サブフォームを用意して切り替える方法を取ろうかと考えています。

この回答は役に立ちましたか?

0 件のコメント コメントはありません

7 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2013-10-07T03:38:44+00:00

    MukkuMuku様

    返信ありがとうございます。

    保存したいわけではないです。

    変更したプロパティは破棄されても全く問題ないのですが、別の移動ボタンをクリックしたときに保存のダイアログが出てしまうので困っています。

    下記のサンプルプログラムを作成したのですが、同じ現象が発生します。

    何か使い方が間違っていますでしょうか。

    (Filterは使用せず、OrderByだけを使用しています)

    サブフォーム

     レコードソース:POST_CODE

     項目(PREFECT_CD、PREFECT_NM)をテキストボックスで定義

    メインフォーム

     サブフォームを貼り付け

     コマンドボタン作成(コマンド1、コマンド2)

     Private Sub コマンド1_Click()

        Me!サブフォーム.Form.OrderBy = "PREFECT_CD DESC"

        Me!サブフォーム.Form.OrderByOn = True

        Me!サブフォーム.Requery

     End Sub

     Private Sub コマンド2_Click()

        Me!サブフォーム.Form.OrderBy = "PREFECT_CD"

        Me!サブフォーム.Form.OrderByOn = True

        Me!サブフォーム.Requery

     End Sub

    ナビゲーションフォーム

     移動ボタン1、移動ボタン2を作成

     移動ボタン1のNavigationSubformにメインフォームを設置

    これで実行すると、コマンド1、コマンド2を押す度にサブフォームの表示順序が変わるのですが、

    移動ボタン2を押したときに「サブフォームを保存しますか?」のメッセージが出てしまします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  2. Anonymous
    2013-10-07T03:03:23+00:00

    MukkuMukuです。

    実行時に変更などしたプロパティは保存されないのですが、保存をしたいということでしょうか?

    どんな方法なら保存のダイアログが表示されるのか試してはみるものの特に手がかりがなく、ふとどっちなんだろうと思って。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2013-10-07T00:18:38+00:00

    MukkuMuku様

    返信ありがとうございます。

    >“サブフォーム“が配置された“メインフォーム”をナビゲーション フォーム内に表示するフォームの一つとして配置したということでよいのでしょうか。

    その通りです。

    フィルタの処理は、

    メインフォームにサブフォームに表示しているテーブルの抽出条件を指定するテキストボックスなどがあり、

    メインフォームの”抽出実行"ボタンをクリックすることにより、サブフォームのフィルタを書き換えてRequeryすることにより表示を変えています。(条件によりOrderByも指定しています)

    なので、テキストボックスなどに入力された値によりテーブルの複数項目に対して"="や"Like"のAND条件でフィルタをかけています。

    よろしくお願いいたします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2013-10-06T23:46:14+00:00

    MukkuMukuです。

    ‐‐‐

    サブフォームをデータシートビューで表示して、メインフォームの条件によりサブフォームのフィルター切り替えで表示を更新する

    ‐‐‐

    このフィルタ処理はどのような内容でしょう。

    保存の対象となっているフォームとは。

    “サブフォーム“が配置された“メインフォーム”をナビゲーション フォーム内に表示するフォームの一つとして配置したということでよいのでしょうか。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません