Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


59 / 2272 ツリー ←次へ | 前へ→

【13165】印刷履歴を取りたい。 たけお 17/6/12(月) 10:29 質問[未読]
【13166】Re:印刷履歴を取りたい。 hatena 17/6/13(火) 0:04 回答[未読]
【13167】Re:印刷履歴を取りたい。 たけお 17/6/13(火) 8:28 お礼[未読]

【13165】印刷履歴を取りたい。
質問  たけお E-MAIL  - 17/6/12(月) 10:29 -

引用なし
パスワード
   「会員名簿」はマル秘扱いの書類ですので、現状では印刷するたびに次の手順で印刷履歴を取っています。
「会員名簿」テーブルに「印刷日」フイールド(日付/時刻型)を持たせ、このテーブルを基にクエリを作成。
デザインフイールドに「コード」「氏名」「印刷日」を配置し、「印刷日」フイールドは「印刷日:Date()」に変更して追加クエリにしています。
保管すべき「印刷履歴」テーブルの構造は「コード」「氏名」「印刷日」です。
印刷されるたびにこのクエリが実行されるようマクロに組んでいます。
しかしこれでは誰が印刷したのか判りませんので、印刷する都度、印刷者の名前を入力するように変更しました。
レポートヘッダーに「テキストボックス」を設定して→「その他」タブの「名前」欄に「メッセージ」と記入→「データ」タブの「コントロールソース」欄に「名前を入力してください」
この入力された名前を「印刷履歴」テーブルに反映させる方法が思い浮かびません。
何か良い方法はないでしょうか。ご教示ください。

【13166】Re:印刷履歴を取りたい。
回答  hatena  - 17/6/13(火) 0:04 -

引用なし
パスワード
   ▼たけお さん:
>印刷されるたびにこのクエリが実行されるようマクロに組んでいます。

これはどのオブジェクトのどのイベントで実行してますか。

>しかしこれでは誰が印刷したのか判りませんので、印刷する都度、印刷者の名前を入力するように変更しました。
>レポートヘッダーに「テキストボックス」を設定して→「その他」タブの「名前」欄に「メッセージ」と記入→「データ」タブの「コントロールソース」欄に「名前を入力してください」
>この入力された名前を「印刷履歴」テーブルに反映させる方法が思い浮かびません。

レポートを開くときにパラメータで聞いてくるのでそこで入力しているのですね。

下記のような設計にすればどうでしょう。

フォーム上にコマンドボタン「印刷」とテキストボックス「名前」を配置します。

ユーザーはテキストボックスに名前を入力してコマンドボタンクリックで印刷するようにします。
テキストボックスに名前の記載がない場合は、印刷せずに、名前を入力するように即すメッセージボックスを表示します。
印刷後に、印刷履歴へ追加する追加クエリを実行すればいいでしょう。

レポート上に名前を表示したい場合はテキストボックスのコントロールソースを

=[Forms]![フォーム名]![名前]

とします。


以下、蛇足

マル秘扱いの書類とのことですが、このような仕様では、偽名を使って印刷することができてしまいます。これではセキュリティ的にあまり意味がないかと。
複数のPC、ユーザーで共有しているのなら、PC名、ユーザー名も履歴に格納するようにするといいと思います。
PC名は Environ("COMPUTERNAME")、ユーザー名は Environ("USERNAME") で取得できます。

さらに、ユーザーごとにパスワードを設定して、ユーザーとパスワードが一致しないと印刷できないようにするとなおいいでしょう。その場合、下記が参考になるでしょう。

ID, パスワードが一致したらフォームを開く - hatena chips
hatenachips.blog34.fc2.com/blog-entry-220.html

【13167】Re:印刷履歴を取りたい。
お礼  たけお E-MAIL  - 17/6/13(火) 8:28 -

引用なし
パスワード
   早速の回答ありがとうございました。
追加クエリのフイールドに
印刷者:[reports]![レポート名]![名前]
を追加して対応することで目的を果たすことができました。

コマンドボタンや入力漏れ、偽者対策のご助言をいただきました。
このことはメモに残しておき今後の参考にさせていただきます。
本当にありがとうございました。厚くお礼申し上げます。

59 / 2272 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
1078186
(SS)C-BOARD v3.8 is Free