ドリンクバーゲン会場

アクセスのラベル印刷22008年08月05日 10時28分31秒

前回、アクセスでラベル印刷をするときに、開始位置を指定できるように設定を追加したのですが、この追加で新たに問題が発生しました。
と言うのも、プレビュー画面を表示させる時に、2回表示が出てくるのです。
しかも、そこから印刷する際にも開始位置を聞いてくるようになり、合計3回も開始位置を聞いてくるようになってしまいました。

これでは実用には耐えませんので、1度で済むように前回の内容を修正する必要が出てきました。

まず、なぜ3回も開始位置を聞いてくるのかですが、
フォームから、印刷プレビューできるようにボタンを配置しています。 そのボタンの中では、レポートを呼び出し、その後データのフィルター処理を行っています。
*************************
i = 0
k = inputbox("開始位置")
*************************
レポートを呼び出す時と、フィルター処理するときの両方に上の処理が呼び出されるようになっていました。
さらにプレビュー画面がら印刷する際にも呼び出されているため、合計3回も開始位置を聞いてくるようになってしまいました。

そこで、フィルター処理の時だけ、上の処理が動くように修正したいと思います。

まず、レポートに印刷フラグとして使うラベルを追加します。
「flg」と名前をつけて、「Caption」に「0」を入れておきます。
このままだと、印刷時に「0」が見えてしまうので、プロパティで「可視」を「いいえ」に変更して印刷されないようにしておきます。
*************************
Dim stDocName As String

stDocName = "label_print"
DoCmd.OpenReport stDocName, acPreview

Reports!label_print.Filter = Me.Filter
Reports!label_print.FilterOn = True
*************************
上はフォーム上のボタンで使われているプログラムです。
「label_print」というレポートをプレビューで開き、フォーム上で指定した、フィルター処理を行っています。
*************************
Dim stDocName As String

stDocName = "label_print"
DoCmd.OpenReport stDocName, acPreview

Reports!label_print.flg.Caption = "1"
Reports!label_print.Filter = Me.Filter
Reports!label_print.FilterOn = True
*************************
このプログラムに1行追加しました。 フィルター処理を実行する前に、レポートの「flg」の「Caption」を”1”に変更しています。
これで、レポートを開いた時とフィルターを処理するときのフラグの内容が変わるので、このフラグが”1”のときだけ開始位置用のinputboxを表示させます。

*************************
i = 0
k = inputbox("開始位置")
*************************
上の処理に追加していきます。
*************************
i = 0
If Me.flg.Caption = "1" Then
k = InputBox("開始位置")
Me.flg.Caption = "2"
Else
If Me.flg.Caption = "0" Then
k = 0
End If
End If
*************************
「flg」が”0”のときは、”k”に”0”をセットしています。 これは、レポートの詳細で登録したプログラム上でのエラーを回避するためです。
次に、「flg」が”1”のときに、開始位置を入力する用inputboxを登録しています。
その下で「flg」を”2”に変更していますが、これはプレビュー画面がら印刷した時に開始位置の登録をしなくて済むようにフラグの値を更新しています。

以上で3回表示されていた開始位置の指定を1度にすることができると思います。
もっとスマートな方法もあると思うのですが、とりあえずこれで現在は動かしています。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://n-box.asablo.jp/blog/2008/08/05/3674273/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。