アクセスで管理システムを作っています。
ユーザーが勝手に編集できないように
フォーム上で右クリックを無効にしたいのですが
読み取り専用で開く以外に
何かいい方法はありますでしょうか?(VBAなど?)
宜しくお願い致します。

A 回答 (2件)

> フォーム上で右クリックを無効にしたい



Accessのメニューで「ツール(T)→起動時の設定(U)」を選択して
『起動時の設定』ダイアログを開いてください。
その左下の方に『既定のショートカット メニュー(W)』という項目が
ありますので、そのチェックを外せば、
 『次回の起動から』
右クリックメニューが無効になります。

他の項目により、データベースウィンドウの表示やメニューの選択
項目の制限などもできますので、いろいろ試してみてはいかがで
しょうか。


なお、上記の設定で不都合が発生した場合は、Shiftキーを
押しながらデータベースを起動すれば、『起動時の設定』は
無視できます。
(逆に言うと、ユーザーがこの操作を知っていると、あまり意味がない
 ということになってしまうわけですが・・・(汗))

VBAを使用すれば、この操作も制限可能ですので、一応参考まで:
http://office.microsoft.com/ja-jp/access/HA01232 …
    • good
    • 0
この回答へのお礼

ありがとうございます。
いろいろ試してみます。

お礼日時:2009/05/24 11:11

Access2000/2003 なら、「起動時の設定」の「既定のショートカットメニュー」をオフしてみてください。

(2002は持っていないのでわかりませんが同じ?かも)
2007 なら、Accessのオプションのカレントデータベース内、「リボンとツールバーのオプション」の「既定のショートカットメニュー」をオフしてみてください。
    • good
    • 0
この回答へのお礼

すいません
2003です。
オフと言うのはチェックをはずすんですよね?
残念ながら
何もかわりませんでした、、、、

お礼日時:2009/05/23 23:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qフォームでの右クリックを禁止したい

フォーム上で右クリック禁止にしたいのですが
どうすればいいでしょうか?

フォームの
KeyDown(キークリック時)
KeyPress(キー入力時)
KeyUp(キー開放時)
のどれかのイベントな気がしますが
どのイベントにどのようなVBAコードを書けばいいのかわかりません。
ご教示よろしくお願い致します。(access2003)

Aベストアンサー

VBA は必要ありません。
フォームのプロパティ「ショートカットメニュー」を「いいえ」にしてください。

QAccess サブフォームでの選択行の取得

こんにちは。

Access初心者です。

サブフォームでテーブルの項目を表示させていますが、
選択された行を取得する方法はありますか?
サボフォームの下の方に現在選択されているレコード数が表示されてますが、その値でかまいません。

調べているのですが、なかなか検討がつきません。
宜しくお願い致します。

Aベストアンサー

フォーム名がフォーム1、サブフォームコントロールの名前がサブフォーム1だとすると、

Forms!フォーム1!サブフォーム1.Form.CurrentRecord

で取得できます。
(「Forms」と「Form」がありますのでご注意下さい)


また、フォーム1にコードを記述する場合であれば

Me!サブフォーム1.Form.CurrentRecord

サブフォーム1へのコード記述であれば

Me.CurrentRecord

という構文によっても、それぞれ取得が可能です。

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

QAccessの画面更新を一時的に停止する方法。

こんにちは。
Accessの画面更新を一時的に停止する方法を捜しています。
ExcelのScreenUpdatingと同様な機能です。

VBAでの更新処理時に画面がチラチラと動くのを防止したいと思っています。
(Ver:Access2000)
ご存知の方宜しくお願い致します。

Aベストアンサー

Application.Echo False '画面の描画を止める

・・・処理を実行する・・・

Application.Echo True '画面の描画を行う

QAccess レポートプレビュー時に右クリックを禁止させる方法

http://okwave.jp/qa3511238.html
↑で印刷を不可にさせる質問をしたものです。

レポートプレビュー時、メニューバーを消す方法は調べました。
以下、参考までに
Application.CommandBars("Menu Bar").Enabled = True
Application.SetOption "Built-In Toolbars Available", False

あとは右クリックを禁止させれば印刷できなくなると思います。

レポートプレビュー時、右クリックを禁止させる方法があれば教えていただけますでしょうか?

よろしくお願いします。

Aベストアンサー

メニューで「ツール(T)→起動時の設定(U)」を選択して「既定のショートカット メニュー(W)」の
チェックをオフにしてみてください。
これで、右クリックメニュー(=既定のショートカット メニュー)が表示されなくなると思います。
(但し、設定が有効になるのは次回起動時です。また、Shiftキーを押しながらAccessを
 起動させた場合は、この設定は無視されます)

VBAで記述する場合は、
CurrentDb.Properties("AllowShortcutMenus") = False
になります。


また、No.1で指摘されている「Ctrl+P」についてはAutoKeysマクロで使用できなくすることが
できます。
(「Ctrl+P」の場合は、「マクロ名」に「^P」と記述します)
http://www.accessclub.jp/samplefile/samplefile_141.htm


・・・ただ、AccessにFocusがない状態(Accessをアクティブにした後、Windowsのメニューを
表示→メニューを再度非表示にする、など)にした状態でPrintScreenをされた場合など、
これでも抜け道は残ってしまいますが・・・(汗)

メニューで「ツール(T)→起動時の設定(U)」を選択して「既定のショートカット メニュー(W)」の
チェックをオフにしてみてください。
これで、右クリックメニュー(=既定のショートカット メニュー)が表示されなくなると思います。
(但し、設定が有効になるのは次回起動時です。また、Shiftキーを押しながらAccessを
 起動させた場合は、この設定は無視されます)

VBAで記述する場合は、
CurrentDb.Properties("AllowShortcutMenus") = False
になります。


また、No.1で指摘されている「Ctrl+P」につい...続きを読む

Qアクセス:フォームビューからデザインビューへの切替えをロックしたい

お世話になります。
アクセス初心者ですよろしくお願いします。

《アクセス:フォーム》
◆フォームビューから、デザインビューに他者が自由に切替えをできないようにすることは簡単にできますか?

◆(目的)私が作成したものを入力担当者が勝手にさわれないようにするためです。

以上よろしくお願いいたします。

Aベストアンサー

配布はMDE形式とする。

と、言うのも使えそうですが・・・。

QAccessのフォーム上にレコード数とレコード番号の表示

Accessでクエリを元に表示するフォーム上で、テキストボックス等に関数を使って、レコード数とレコード番号を表示する方法がありましたら教えてください。

フォームの書式設定で「移動ボタン」の表示をすれば目的の事は出来るのですが、表示の大きさが調整できない為、とても見難いのです。

以上よろしくお願いします。

Aベストアンサー

レコード番号のコントロールソースを
=[CurrentRecord]
レコード数のコントロールソースを
=Count("*")-[NewRecord]
としてみてください。

QAccessのフォームのみ表示させたい

Accessを起動した際、フォームのみ表示するにはどうすればよいのでしょうか?
(Accessを起動すると、オブジェクトメニュー?(テーブルやクエリ等のオブジクトを選択するウィンドウ)を表示させないで、フォームのみを表示させるには?)
また、上記と同じようにして、なおかつAccessを起動させないでフォームで起動や終了といったことが出来るのでしょうか?
やはりこれはVB等プログラミングでないと出来ないのでしょうか?ちなみに私はプログラミングは全く出来ません。
わかる方、教えて下さい。宜しくお願いします。

Aベストアンサー

ツールメニュー
”起動時の設定”を開き

フォーム/ページの表示にて起動時に表示させたいフォームを選択すれば、そのMDBを開いた時に、該当のフォームが表示されます。

メニュー画面等を作り、各処理のフォームを開いたり、アクセスを終了するマクロを呼び出すボタンを作ればフォームからの終了等も可能です。

また、データベースウィンドウの表示のチェックボックスを外せば、質問者様の言われているオブジェクトメニューは表示されなくなります。

メンテナンス等を行いたい時はshiftキーを押下しながら立ち上げればデータベースウィンドウが表示できます。

Qフォームを開くときに、コンボボックスの値を選択(アクセスVBA)

こんにちは。
アクセスVBAで、フォームを開いたとき
(フォームのOpenイベント)に、
コンボボックスの値を選択したいのですが、
どういう方法が、あるでしょうか。

理想は、
フォームのOpenないし、Loadイベント内で、
コンボ0.ItemData(2).Selected
と、書くような感じです。
(無論、Selectedは使えませんでした)。

よろしくお願いします。

Aベストアンサー

これでいいのかな?
※テキスト書きなので検証していません

If コンボ0.ListCount > 0 Then
  コンボ0.Value = コンボ0.Column(0, 2)
End If

Qアクセエスのレコードの更新をVBAでするには?

アクセスで、一覧表のフォームにボタンを取りつけています。レコードの内容を変更したら、ペンの形のマークが現れますね。これは変更中ということですが、そこでボタンを押しても変更は確定されないから、更新確定させたいのです。

それで、DoCmd.Requery を最初の行に入れてみたら、元の一覧表は最初のレコードに飛んでしまう。

元の一覧表の位置を動かさないために、Ctrl+Enter キーを押して更新確定させたような状態をVBAで実現する方法あるのでしょうか?

よろしくお願いします。

Aベストアンサー

No1 です。
今回の場合には
Docmd.RunCommand acCmdSaveRecord の方が良かったですね
文字通りレコードを保存します。
Requery に引きづられてしまいました (^_^;)

Recalc、Refresh、Requery の使い分けは下記が参考にはなりますか?
http://www.nurs.or.jp/~ppoy/access/access/acF007.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング