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

OS:WindowsXP
Access Version:Access2003

メインフォームにチェックボックスを配置、非連結のサブフォームにクエリを表示させています。
チェックボックスラベルにはクエリのフィールド名を表示させており、チェックボックスをオン/オフにすることでクエリのフィールドを表示/非表示に切り換えております。
※切り替え方法はColumnWidthで操作しています。

ところで、表示/非表示と切り替え操作をしてメインフォームを閉じるコマンドボタンをクリックして閉じようとすると、
「”○○○(クエリ名)”のレイアウトが変更されています。保存しますか?」
という内容のメッセージが表示されてしまいます。
ここでレイアウトの変更は保存したくないのです。

そこで、私のした処置とは、
(1)メインフォームを閉じるコマンドボタンに
DoCmd.Close acForm "○○○(フォーム名)"
DoCmd.Close acQuery "○○○(クエリ名)",acSaveNo
と記述しました。

acSaveNoのヘルプを見ると、
メッセージを表示せずに保存しないで閉じる、
とあったのですがこれでもメッセージが表示されてしまいました。

そこで、
(2)
DoCmd.SetWarning False
DoCmd.Close acForm "○○○(フォーム名)"
DoCmd.Close acQuery "○○○(クエリ名)",acSaveNo
DoCmd.SetWarninf True
と記述したところ、メッセージを表示させなくすることには成功したのですが、無条件でレイアウトしたクエリが保存されてしまいました。

どのように記述すればメッセージを表示させず、かつレイアウト変更したクエリを保存せずに閉じることができますか?
初心者のため、誤字脱字があると思いますがすみません。
丁寧に教えていただければ幸いです。よろしくお願いいたします。

A 回答 (1件)

> どのように記述すればメッセージを表示させず、かつレイアウト変更した


> クエリを保存せずに閉じることができますか?

閉じるコマンドボタンのコードの該当部を、以下のようにしてみて下さい:
(サブフォーム名を「埋め込み0」と想定したコードです)

'使用しているクエリを、サブフォームから切り離します
'(これにより、メインフォームを閉じるときの保存の対象外になります)
埋め込み0.SourceObject = ""
'メインフォームを閉じます
'(フォーム名の代わりに「Me.Name」を使用しました)
DoCmd.Close acForm, Me.Name, acSavePrompt


・・・以上です。
但し、これだけですと、メインフォームのデザインを変えた場合などに
巻き添えを食らい、サブフォームが空の状態が保存されてしまうことが
あります(汗)

ですので、フォームの「開く時」イベントに、次のようなコードを追加して
おくことをお勧めします:

'サブフォームのソースオブジェクトが空になっていた場合は、
'クエリを埋め込み直します
If 埋め込み0.SourceObject = "" Then
  埋め込み0.SourceObject = "○○○(クエリ名)"
End If


<以下、参考・余談>
Accessの「ファイル(F)」メニューの上書き保存(S)」や「名前を付けて
保存(A)」が使用可能な場合、サブフォームで列を非表示にした状態で
それを行われると、非表示状態が保存されてしまいます。
その意味では、メインフォームの「開く時」イベントで、各フィールドの
ColumnWidthの値も設定してしまう、という手もあるかと思います。

但し、そうしたとしても、クエリを単独で開いた場合には非表示になって
しまいます。
クエリを単独で使用することもある場合は、サブフォームについては、
現在のクエリを使用した「データシート型」のフォームを新設し、それを
ソースオブジェクトにした方がいいかもしれません。
(データシートビュー型のフォームにするには、フォームのプロパティ
 シート『書式』タブで、『既定のビュー』を「データシート」にします)
    • good
    • 0
この回答へのお礼

とても丁寧な説明ありがとうございました。
おかげさまで上手く作動してくれました!

また、クエリを単独で使用することはないとは思いましたが、念のため参考通りにフォームを新設させていただきました。
ご親切な回答、心より感謝しております。
また、機会がありましたらよろしくお願いいたします★

お礼日時:2008/08/11 20:02

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

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す