ここから本文です

Access 右クリックした時のメニューを表示/非表示にする方法 現在作成中のファ...

kazemakaseさん

2018/1/2614:18:14

Access 右クリックした時のメニューを表示/非表示にする方法

現在作成中のファイルは、起動させるとログインフォームが表示される仕様となっております。

このログインフォームにはユーザーAとユーザーBでログイン可能ですが、
右クリック時の既定のメニュー(デザインビュー・閉じるなど)を
ユーザーAの場合は表示し、ユーザーBの場合は非表示にしたいと思っております。

[オプション>現在のデータベース>既定のショートカットメニュー]のチェックを外すことで
既定のメニューを表示できないようにすることはできますが、この方法ですとユーザーAも表示できなくなってしまいます。

そこで、普段は上記チェックを外してメニューは非表示としておき、
ユーザーAがログインした時だけ下記プロジージャ(リンク先の方法を応用:https://www.feedsoft.net/access/tips/tips166.html)を実行するマクロが起動するようにしました。

本方法でユーザーAでログインすると、確かに[オプション>現在のデータベース>既定のショートカットメニュー]にチェックが入るのですが、そのままではメニューは非表示であり、一度ファイルを閉じて再び開かなければ本設定は有効にならずメニューが表示されません。
ログイン後自動でAccessを再起動(閉じて再び開く)ようにすれば良いと思うのですが、VBAでどのように記述すればいいのかわかりません。
ご教示のほどよろしくお願い致します。
※ なお、ファイルにはAccessを終了する時ボタンがあり、このボタンを押して終了すると再びメニューは非表示になるようにしております。

Option Compare Database
Option Explicit

Function test()
Dim db As Database
Dim pr As DAO.Property

Set db = CurrentDb
On Error GoTo Err

db.Properties("AllowShortcutMenus") = True
Set db = Nothing
Exit Function

Err:
'起動時の設定がまだ設定されていない場合、エラーが発生するのでプロパティを作成し設定します。
Set pr = db.CreateProperty("StartupShowDBWindow", dbText, "False")
db.Properties.Append pr
Set pr = Nothing
Set db = Nothing
End Function

Private Sub Form_Load()
MySetPrpty
End Sub

閲覧数:
1,245
回答数:
1
お礼:
100枚

違反報告

ベストアンサーに選ばれた回答

glo********さん

2018/1/2711:21:18

フォーム限定ならば、
全てのフォームの「開くとき」イベントに

Private Sub Form_Open(Cancel As Integer)

Me.ShortcutMenu = (ショートカットメニューを表示させる条件式)

' サンプル
' Me.ShortcutMenu = MsgBox("ショートカットメニューを表示する", vbYesNo) = vbYes

End Sub

とする。


レポートには ShortcutMenu プロパティが備わっていないので上記方法では無理。

レポートを含めるのならば、ShortcutMenuBarプロパティを利用する。
ただし、必ずショートカットメニューは表示されるので、ショートカットメニュー(ツールバー)をカスタマイズしてその名前を割り当てる。

全てのフォーム・レポートの「開くとき」イベントに

Private Sub Form_Open(Cancel As Integer)

If Not (ショートカットメニューを表示させる条件式) Then
Me.ShortcutMenuBar = "自作ショートカットメニューの名前"
End If

' サンプル
' If Not MsgBox("ショートカットメニューを表示する", vbYesNo) = vbYes Then
' Me.ShortcutMenuBar = "=""""" ' ←これは空欄を表示させている
' End If

End Sub

この回答は投票によってベストアンサーに選ばれました!

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる