- ベストアンサー
Accessで印刷禁止
今、Accessで業務用のアプリケーションを 作成しているのですが、 「印刷」を禁止することはできないのでしょうか セキュリティ的な問題なのですが、 誰でもカレデモ印刷できてしまうのはマズイのです しかも、レポートじゃなくても フォームの印刷プレビューを出して印刷する人もいるので Access全般の印刷を禁止することってできますか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
No.1です。 > いろいろな方法を教えていただき、ありがとうございます。 すみません、前回の回答は、全体で1つの対応策になります。 (基本が「A)」で、以降はそれをより強固にするための策、です) 前回の回答は誤解を招く書き方になってしまっていました、申し訳ありません。 それと、前回回答時には失念していたのですが、フォームの印刷への対応として 別の方法があることを思い出しましたので、それもご紹介させて戴きます。 (なお、これもPrintScreenには対応できませんが) 1)フォームをデザインビューで開く 2)データを表示するコントロールを選択する(1つずつでも複数でも可) 3)プロパティシートで『書式』タブを選択 4)『表示対象』の設定値を「画面のみ」に設定 ・・・以上です。 こうすると、そのコントロール(→結果としてデータ)は、フォーム印刷時には表示されなくなります。 ついでで新規ラベルを作成し、こちらは『表示対象』を「印刷のみ」とした上で、 ラベルの文面を「このデータの印刷は禁止されています」としてやれば、 「なぜか印刷がうまくいかない」と思って何回も印刷しようとされる、という 事態も防げると思います。 残念ながらレポートのコントロールにはこの設定ができないのですが、 レポートでは別の方法によって印刷を回避する方法もあるようです。 (私自身が作ったDBは、基本的に印刷もフォームで済ませるか、Excelへの 出力で対応しているため、レポートのことはあまり知らないもので・・・) 上で説明した、プロパティシートの『表示対象』にカーソルを移動させた状態で 「F1」キーを押してヘルプを表示させると、この辺りの説明が見られると思います。 (今、手元にあるのはAccess97なので、バージョンによっては違うかもしれません(汗) その場合は、「Format」「Retreat」をキーワードとして検索してみて下さい)
その他の回答 (2)
- temtecomai2
- ベストアンサー率61% (656/1071)
> でも、まずはできるところから固めていきたいと > おもいます。 画面への出力も紙への出力も同じですからね。。。 #1 さんのアイデア以外に ユーザーにシステム使用に関する誓約書も書いてもらう。 フォーム、レポートなど開発側がコントロールできる物には ユーザー ID か Windows へのログオン ユーザー名が入るようにする。 操作ログを残す。(監視できる操作だけになってしまいますが) 印刷できる権限の人しか使わせない。 入退室時の持ち込み持ち出しが管理されている部屋で使用する。 費用対効果でお考え下さい。
お礼
ありがとうございます。 確かに費用対効果ですね。 お金をかければ何とかなる、と思いますが それは企業の規模なり、考え方なりに左右されると思います
- DexMachina
- ベストアンサー率73% (1287/1744)
印刷を完全に禁止するのは難しいように思えます。 対応策としては、 A)Accessの組み込みメニューを独自のメニューバーに置き換えて、メニューから 「印刷」を選べなくする B)テーブル/クエリを直接開かれないようにするため、データベースウィンドウは 表示させない C)Shiftキーを押しながら立ち上げてもデータベースウィンドウが表示されないよう、 「AllowBypassKey」の設定をFalseにする D)「Ctrl+A」によるレコードの全選択&「Ctrl+C」によるデータのコピーをさせない為、 フォーム上でこれらのキーが押された場合は強制的にキャンセルさせる ・・・といったところが考えられますが、たとえこれだけやっても、Accessを表示させた 後にWindowsのタスクバーなどをクリックし(→Accessをアクティブでなくす)、 PrintScreenで画面を画像としてコピーされてしまえば、結局印刷を防ぐことはできない ことになります。 (PrintScreenに対しても防御策はあるのかもしれませんが、私にはわかりません) 一応、簡単に説明をさせて戴きますが、上記の対応策の「A)」は、 1)メニューバーを右クリックし、表示されるメニューから「ユーザー設定」を選択 2)『ユーザー設定』ダイアログで『新規作成』ボタンをクリック 3)『新しいツールバー』ダイアログで名前を入力して『OK』ボタンをクリック 4)『ユーザー設定』ダイアログで『プロパティ』ボタンをクリック 5)『ツールバープロパティ』ダイアログの『種類』を「メニューバー」に設定して 『閉じる』ボタンをクリック 6)『ユーザー設定』ダイアログの『コマンド』タブをクリック 7)メニューとして必要なコマンドを、作成したメニューバー(画面のどこかに表示されて いるはず)にドラッグ&ドロップ 8)『ユーザー設定』ダイアログを閉じる 9)元からある方のメニューバーで「ツール→起動時の設定」を選択 10)『起動時の設定』ダイアログの『メニューバー』に、上で作成したメニューバーを指定 でできます。 「B)」は、同じく「起動時の設定」で全てのチェック(→『詳細』ボタンを押して表示される 項目も含む)を外せばOKです(一部、外さなくてもいいものもありますが)。 *以上は、Shiftキーを押しながらDBを立ち上げられると、効果がありません。 (「C)」は、それに対応するための策) 「C)」についてはこちらを参照下さい; http://www.accessclub.jp/samplefile/samplefile_01.htm 「D)」は今回は説明を省略させて戴きますが、これもモジュールをいじることになります。 ※これらは必ず新規DBで試して、実際にどうなるのかを確認してから目的のDBに適用 して下さい。(元に戻すのに手間が掛かりますので・・・)
お礼
ありがとうございます。 いろいろな方法を教えていただき、ありがとうございます。 確かにPrintScreenをやられるとどうしようもないですね… それに、顧客データなんかもプリントできなくても メモられたら、どうしようもないですし。 でも、まずはできるところから固めていきたいと おもいます。
お礼
なるほど、フォームでそのような設定があるとは 知りませんでした。 あと、AutoKeysのマクロでCtrl+Pの ショートカットを無効にしておきました。 あとはPrintScreenの対応ですかね いろいろ調べましたが、結構難しいことが書いて在ります。 情報漏洩防止ソフトを購入すれば 簡単で済みそうなのですが…