
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
と記述したところ、メッセージを表示させなくすることには成功したのですが、無条件でレイアウトしたクエリが保存されてしまいました。
どのように記述すればメッセージを表示させず、かつレイアウト変更したクエリを保存せずに閉じることができますか?
初心者のため、誤字脱字があると思いますがすみません。
丁寧に教えていただければ幸いです。よろしくお願いいたします。
No.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の値も設定してしまう、という手もあるかと思います。
但し、そうしたとしても、クエリを単独で開いた場合には非表示になって
しまいます。
クエリを単独で使用することもある場合は、サブフォームについては、
現在のクエリを使用した「データシート型」のフォームを新設し、それを
ソースオブジェクトにした方がいいかもしれません。
(データシートビュー型のフォームにするには、フォームのプロパティ
シート『書式』タブで、『既定のビュー』を「データシート」にします)
とても丁寧な説明ありがとうございました。
おかげさまで上手く作動してくれました!
また、クエリを単独で使用することはないとは思いましたが、念のため参考通りにフォームを新設させていただきました。
ご親切な回答、心より感謝しております。
また、機会がありましたらよろしくお願いいたします★
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) Accessクエリで年月フィールドを年のみで抽出する方法について 2 2022/08/29 18:10
- その他(データベース) Accessフォームにて指定のフィールドの平均値を小数点第一位で表示できない 2 2022/08/30 17:19
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- Access(アクセス) アクセス フォームの自動入力 1 2023/03/20 00:18
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Access(アクセス) Dlookupにエラーがでてしまう 1 2022/10/31 14:35
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Excel(エクセル) VBAで「クエリと接続」の画面を出せますか? 2 2022/10/24 13:35
このQ&Aを見た人はこんなQ&Aも見ています
-
Access2002 フォームを閉じるたびに「このフォームの変更を保存しますか?」と表示される
その他(データベース)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
Accessで埋め込んだサブフォーム(データシート形式)でデータ追加ができない
Access(アクセス)
-
-
4
[Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには
Access(アクセス)
-
5
Access を×ボタンで閉じる時、レコード保存したくない。
Visual Basic(VBA)
-
6
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
7
サブフォームを非表示させる方法を教えて下さい
その他(Microsoft Office)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(ACCESS)条件に応じて、テキ...
-
ACCESSのVBAでの2種類の画面サ...
-
Access 複数フォームを...
-
フォームが閉じる機能を無くしたい
-
AC2000でフォームから入力した...
-
サブフォームの帳票のレコード...
-
Access サブフォームでの選択行...
-
フォームをA4サイズにおさめる...
-
単票フォームにあるタブのサブ...
-
MicrosoftAccess2000「社員管理...
-
ACCESSにおいてのプロパティ(...
-
テーブル結合について
-
Access2000でフォーム上...
-
access2007 サブフォームのエク...
-
Access 2010 分割フォームのフ...
-
Accessのサブフォームについて
-
ACCESS2000サブフォームでの質問
-
【ACCESS】サブフォーム...
-
アクセス2000でフォームに入力...
-
ACCESSでのデータ削除について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access サブフォームでの選択行...
-
Access 複数フォームを...
-
Access2000、これはいったい・...
-
access サブフォームにリストを...
-
(ACCESS)条件に応じて、テキ...
-
ACCSESS2013VBA フォームのレコ...
-
Access2000 サブフォームのReco...
-
Accessでサブフォームの中の並...
-
サブフォームが見えなくなる。
-
AccessのFormのみをスクリーン...
-
googleフォームでインストール...
-
初心者です。accessで請求書を...
-
サブフォームでのダブルクリッ...
-
Accessで、一覧からクリックし...
-
アクセスでサブフォームのレコ...
-
サブフォームのデータを保存す...
-
Accessのサブフォームから値を...
-
コンボボックスで選択実行後、...
-
アクセスで サブフォームの表...
-
サブフォームの切り替え方を教...
おすすめ情報