|
▼たけお さん:
>印刷されるたびにこのクエリが実行されるようマクロに組んでいます。
これはどのオブジェクトのどのイベントで実行してますか。
>しかしこれでは誰が印刷したのか判りませんので、印刷する都度、印刷者の名前を入力するように変更しました。
>レポートヘッダーに「テキストボックス」を設定して→「その他」タブの「名前」欄に「メッセージ」と記入→「データ」タブの「コントロールソース」欄に「名前を入力してください」
>この入力された名前を「印刷履歴」テーブルに反映させる方法が思い浮かびません。
レポートを開くときにパラメータで聞いてくるのでそこで入力しているのですね。
下記のような設計にすればどうでしょう。
フォーム上にコマンドボタン「印刷」とテキストボックス「名前」を配置します。
ユーザーはテキストボックスに名前を入力してコマンドボタンクリックで印刷するようにします。
テキストボックスに名前の記載がない場合は、印刷せずに、名前を入力するように即すメッセージボックスを表示します。
印刷後に、印刷履歴へ追加する追加クエリを実行すればいいでしょう。
レポート上に名前を表示したい場合はテキストボックスのコントロールソースを
=[Forms]![フォーム名]![名前]
とします。
以下、蛇足
マル秘扱いの書類とのことですが、このような仕様では、偽名を使って印刷することができてしまいます。これではセキュリティ的にあまり意味がないかと。
複数のPC、ユーザーで共有しているのなら、PC名、ユーザー名も履歴に格納するようにするといいと思います。
PC名は Environ("COMPUTERNAME")、ユーザー名は Environ("USERNAME") で取得できます。
さらに、ユーザーごとにパスワードを設定して、ユーザーとパスワードが一致しないと印刷できないようにするとなおいいでしょう。その場合、下記が参考になるでしょう。
ID, パスワードが一致したらフォームを開く - hatena chips
hatenachips.blog34.fc2.com/blog-entry-220.html
|
|