2017-03-31 15 views
0

で開いたウィンドウを閉じて、私の質問です:あなたがアクセス「再表示列」メニューを開くことができます。もちろん、 :プログラム(VBA)は、最初に、[OK]をrunCommand関数

DoCmd.RunCommand acCmdUnhideColumns 

しかし閉じることができ、コードがありますポップアップメニュー?多分、タイマーで、設定した時間の後に自動的に閉じるメッセージボックスを作成する方法のように?

私はこれが狂っていると知っています。なぜ、私が間違った方向に向いているのかを説明する背景があります。

スプリットフォームでは、ユーザーの役割に応じて列を表示、非表示、並べ替えるユーザープロファイルを読み込むためのボタンを作成しました。
これはうまくいきますが、ここでStackExchangeで学んだように、「フォームが標準モードで開いている間に行われた設計変更は保存できません」ので、ユーザーがフォームを開くたびに変更を行う必要があります。

「列の再表示」メニューを開いたり閉じたりするだけで、フォームが閉じられたときにレイアウトを保存するかどうかをユーザーに確認できるようになりました。今私はちょうどレイアウトを設定して、メニューを開いて、ユーザーが手動で閉じることを余儀なくされましたが、そうする必要がなければはるかにスムーズになります。これは私の状況に合った回避策に最も近いところです。フォームが開いているときはいつでもプロファイルを実行するように設定できますが、一部のユーザーはさらにレイアウトをプロファイルを超えてカスタマイズしてしまい、それらが干渉することがあります。私が考えることができる他のすべてのソリューションは、これが動作するようになると仮定すると、これよりも重くなります。私は他の提案にもオープンしています。

ありがとうございました

答えて

1

ユーザーはXでクロー​​ズフォームを閉じていますか?私はデザインでそれを無効にし、彼らは常にカスタムボタンでフォームを閉じる。コード:

DoCmd.Close acForm, Me.Name, acSaveNo

私はまた、アプリを終了し、X閉じる]を無効にします。クローズしないメインメニューフォームのボタンでデータベースを閉じます。また、リボンをカスタマイズし、ナビゲーションペインを非表示にし、ファンクションキーを無効にして右クリックします。シフトキーバイパスについて教えないでください。

+0

「X」は引き続き使用できますが、ほとんどの場合、ユーザーは自分と同じコードを持つボタンを使用します。テストするために、私はあなたのコードに変更しました。それはそれを悪化させました。 unhidecolumnsコマンドが保存要求をトリガーする機能を停止しましたが、保存しませんでした。 代わりにコードをacSaveYesに変更すると変更が加えられましたが、変更は必要ありません。それでも、独自の列レイアウトをトリガーすることはありませんが、unhidecolumnsコマンドと組み合わせて、尋ねることなくレイアウトを保存します。だから、軽度の改善ですが、私はまだunhidecolumnsウィンドウを開いて、ユーザーにそれを閉じる必要があります。ありがとう –

関連する問題