IT仕事 MS Access

フォームを直接Accessで印刷プレビューし、閉じるときのイベントで処理をしたい

投稿日:

困ったこと:

前提として、自分とこのシステムは、フォームを直接Accessで印刷プレビューして、そのまま印刷できるように作ってある。

しかし、リボンに印刷プレビューを閉じるボタンがある一方で、フォームの右に閉じるボタンが表示されているので、後者をユーザーが誤って押してしまうことがある。
すると印刷プレビューを終えるつもりがフォームを閉じることになってしまう。
再度、呼び出したいフォームを探して開くのは面倒・・・。

やりたかったこと:

リボンの印刷プレビューをクリックすると、フォームウィンドウを最大化してプレビューする(ここは簡単、DoCmd.Maximizeで)。
印刷プレビューを閉じると、フォームウィンドウのサイズが元に戻る(ここがわからん)。

難しかったこと:

印刷プレビューを閉じた際のイベントトリガーがAccessにあるのかないのかわからず、調べるのにずいぶん時間がかかった。

以下の達人のブログを拝見し、イベントを追跡する方法があることを発見し、フォームのプロパティの各所にイベントトラップを仕掛けて、調査した。感謝。
■T’sWare イベント徹底活用 1 ~フォームのオープン・クローズ~

できた:

フォームの「レコード移動時」イベントに記述した処理で、目的が達成できることを発見。
具体的には、以下のコードでOK。

Private Sub Form_Current()
'印刷プレビューから戻るときにフォームのサイズを変える
'■T'sWare イベント徹底活用 1 ~フォームのオープン・クローズ~
'http://tsware.jp/study/vol5/event_01.htm
    DoCmd.Restore
End Sub

-IT仕事, MS Access

執筆者:

関連記事

重たいTrelloでカードのアーカイブを自動化

会社でTrelloを使っているスタッフから、最近「重たい」という話をよく聞く。そこで、ボードの古いカードを定期的にアーカイブするよう、自動化してみました。3000→500件ほどに圧縮、ずいぶん軽くなり …

no image

GALAXY S III α SC-03E でUSBテザリング(EasyTether)

かつて色んなアプリ(FoxFiなど)でチャレンジしたのだが、Wifiテザリングが成功しない。 Google先生でも調べてみたが、docomo端末でMVNO(私のはBiglobeのSIM)を使っている場 …

no image

EPSON EP-4004の有線LAN(インフラストラクチャーモード)での接続方法

EPSON EP-4004のプリンタは、無線LANのアドホックでの接続は、とても簡単。 しかし、インフラストラクチャーでの接続となると、とても難しい。 マニュアルにも、丁寧なやり方は載っていない。 以 …

no image

今日も目が赤い

Accessで業務アプリ作成中。 Accessって難しいな、と思う。 VBAのデータ操作関数(DMAXとか)は、何が難しいって、まず構文がややこしくって、なんどやっても覚えられない。 覚えられないから …

no image

住所を自動入力するフォーム

以下のリンクを参考に、郵便番号から都道府県と市町村名を自動入力するフォームを作った、とある企業さんのWebサイトにて。 AjaxZip 2.0 – Ajax郵便番号→住所自動入力フォーム( …