Access VBA質問箱 IV

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

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


144 / 9994 ←次へ | 前へ→

【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
187 hits

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

144 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078188
(SS)C-BOARD v3.8 is Free