データシート形式のフォームで、列幅などの変更を保存せずにフォームを閉じたい。

Access2010使用

データシート形式のフォームで列幅や列順などのレイアウトを変更し「×」ボタンでフォームを閉じると、

次にフォームを開いた時に直前のレイアウト変更が反映されています。

 

質問1:

 そもそも、保存ボタンを押したら変更が保存される仕様なのでしょうか?保存ボタンを押さずとも保存される仕様なのでしょうか?

 

質問2:

 列幅などのレイアウト変更を保存せずに閉じる方法はありますでしょうか?(複数人で使用するため、変更が反映されたくないのです。)

 コマンドボタンのクリックでフォームを閉じる場合はClick時イベントで「DoCmd.Close acForm, Me.Name, acSaveNo」とすればOKなのですが、

 「×」ボタンで閉じられた場合は保存されてしまいます。

 「×」ボタンを無くせばいい、といったご意見があるかもしれませんが、それはしたくありません。

 

以上、ご教示いただけると幸いです。よろしくお願いいたします。

 

※以下、参照したサイト

(1)デザインの変更を保存せずにデータシート フォームを閉じる方法

http://support.microsoft.com/kb/173517/ja

 

(2)Access2010 データシートビューの列順、列幅の変更が保存できない。

http://answers.microsoft.com/ja-jp/office/forum/office_2010-access/access2010/dd00c952-9ba5-4562-b387-b579a36a53c7

 

(3)データシート部分の操作

http://www.mahoutsukaino.com/ac/access2007/04_db3/03.htm

 

 

上記(1)は日本語がちょっと変で、内容が理解できませんでした。

上記(2)の方は、私と逆の現象(保存されるはずが保存されない)が起きているようです。

上記(3)の方は、

「上書き保存すればその列幅は記憶され、次にこのフォームを開いたときもその列幅で表示されます。

保存せずにフォームを閉じると、その列幅は記憶されず、次にフォームを開いたときは一番最初の標準的な列幅で表示されます。」

とおっしゃっています。(Access2007にて)

 

MukkuMukuです。


フォームが閉じられるときのハンドリングって結構面倒ですよ。

変更を保存させたくない を少し読み替えて

OnLoad/ロード時などで幅を決めてしまえばよいのでは?


ColumnWith で twips 指定 / 0 : 非表示 / -1 : デフォルト / -2 : 最適幅 など動作します。

 -2 についてはリファレンスにない値なので動作保証はありません。

1 人がこの回答を役に立ったと思いました。

·

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

お役に立てず、申し訳ございません。

素晴らしい! フィードバックをありがとうございました。

この回答にどの程度満足ですか?

フィードバックをありがとうございました。おかげで、サイトの改善に役立ちます。

この回答にどの程度満足ですか?

フィードバックをありがとうございました。

MukkuMuku様

 

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

 

当初、「ColumnWith=-1(規定の幅)」 という案も出たのですが、全ての列が同じ幅になってしまうため見送りました。

 

複数人で使用し、各自が自分に都合のいいレイアウトにする事があります。(列幅、列の順番、列の表示/非表示、・・・など)

Form_Load時に、VBAで最大公約数的なレイアウトに設定してしまう方法もあるのですが、

プログラムでがちがちに固定してしまうのは避けたく、「変更を保存しない方法」がないものか模索しておりました。

 

実は最近まで「保存ボタンを押したら保存されるが、押さなければ保存されない」と思っておりました。

「押そうが押すまいが保存される」のがAccessの仕様、という事なら、あきらめるしかないな・・・とも感じております。

 

 

 

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

お役に立てず、申し訳ございません。

素晴らしい! フィードバックをありがとうございました。

この回答にどの程度満足ですか?

フィードバックをありがとうございました。おかげで、サイトの改善に役立ちます。

この回答にどの程度満足ですか?

フィードバックをありがとうございました。

 
 

質問情報


最終更新日: 2024年1月10日 表示数 1,586 適用先: