使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
MukkuMukuです。
フォームが閉じられるときのハンドリングって結構面倒ですよ。
変更を保存させたくない を少し読み替えて
OnLoad/ロード時などで幅を決めてしまえばよいのでは?
ColumnWith で twips 指定 / 0 : 非表示 / -1 : デフォルト / -2 : 最適幅 など動作します。
-2 についてはリファレンスにない値なので動作保証はありません。
このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
Access2010使用
データシート形式のフォームで列幅や列順などのレイアウトを変更し「×」ボタンでフォームを閉じると、
次にフォームを開いた時に直前のレイアウト変更が反映されています。
質問1:
そもそも、保存ボタンを押したら変更が保存される仕様なのでしょうか?保存ボタンを押さずとも保存される仕様なのでしょうか?
質問2:
列幅などのレイアウト変更を保存せずに閉じる方法はありますでしょうか?(複数人で使用するため、変更が反映されたくないのです。)
コマンドボタンのクリックでフォームを閉じる場合はClick時イベントで「DoCmd.Close acForm, Me.Name, acSaveNo」とすればOKなのですが、
「×」ボタンで閉じられた場合は保存されてしまいます。
「×」ボタンを無くせばいい、といったご意見があるかもしれませんが、それはしたくありません。
以上、ご教示いただけると幸いです。よろしくお願いいたします。
※以下、参照したサイト
(1)デザインの変更を保存せずにデータシート フォームを閉じる方法
http://support.microsoft.com/kb/173517/ja
(2)Access2010 データシートビューの列順、列幅の変更が保存できない。
(3)データシート部分の操作
http://www.mahoutsukaino.com/ac/access2007/04_db3/03.htm
上記(1)は日本語がちょっと変で、内容が理解できませんでした。
上記(2)の方は、私と逆の現象(保存されるはずが保存されない)が起きているようです。
上記(3)の方は、
「上書き保存すればその列幅は記憶され、次にこのフォームを開いたときもその列幅で表示されます。
保存せずにフォームを閉じると、その列幅は記憶されず、次にフォームを開いたときは一番最初の標準的な列幅で表示されます。」
とおっしゃっています。(Access2007にて)
使いやすいように設計された Microsoft リレーショナル データベース管理システムのファミリ。
ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。
MukkuMukuです。
フォームが閉じられるときのハンドリングって結構面倒ですよ。
変更を保存させたくない を少し読み替えて
OnLoad/ロード時などで幅を決めてしまえばよいのでは?
ColumnWith で twips 指定 / 0 : 非表示 / -1 : デフォルト / -2 : 最適幅 など動作します。
-2 についてはリファレンスにない値なので動作保証はありません。
MukkuMuku様
ご返信ありがとうございました。
当初、「ColumnWith=-1(規定の幅)」 という案も出たのですが、全ての列が同じ幅になってしまうため見送りました。
複数人で使用し、各自が自分に都合のいいレイアウトにする事があります。(列幅、列の順番、列の表示/非表示、・・・など)
Form_Load時に、VBAで最大公約数的なレイアウトに設定してしまう方法もあるのですが、
プログラムでがちがちに固定してしまうのは避けたく、「変更を保存しない方法」がないものか模索しておりました。
実は最近まで「保存ボタンを押したら保存されるが、押さなければ保存されない」と思っておりました。
「押そうが押すまいが保存される」のがAccessの仕様、という事なら、あきらめるしかないな・・・とも感じております。