
防犯や防災時に役立グッズが多数 「備えて安心グッズのお店」
お得なわけあり商品を多数取り揃え 「訳ありお得館」
厳選デジタルグッズのお店 「おもしろデジモノのデジモノ屋」
厳選食品お取り寄せのお店 「まんぷく屋」
美と健康を考えるお店 「La beaut」
アクセスのラベル印刷2 ― 2008年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度にすることができると思います。
もっとスマートな方法もあると思うのですが、とりあえずこれで現在は動かしています。
と言うのも、プレビュー画面を表示させる時に、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度にすることができると思います。
もっとスマートな方法もあると思うのですが、とりあえずこれで現在は動かしています。
お盆休み ― 2008年08月18日 12時04分30秒
先週は1週間お休みを取りました。
本来は13日~16日までなのですが、11日、12日も休みを取りのんびりしていました。
休みは家から出ることなく、ほとんどテレビの前でした。
旅行に行くお金はありません。というのも、先月テレビを買い換えたところで、やっと地デジになりました。
46インチはやっぱいいですねぇ!
オリンピックも迫力が違います。
しかし、私が見るとみんな負けちゃうんですが・・・・・!
今日から仕事を始めていますが、学校自体は今週いっぱいお休みなので、静かな環境を手に入れています。
この時期が一番仕事がしやすい時期なんですよね!
開発しようにも、普段は集中できないんです。
もうすこしこの時期が長ければなあ!
本来は13日~16日までなのですが、11日、12日も休みを取りのんびりしていました。
休みは家から出ることなく、ほとんどテレビの前でした。
旅行に行くお金はありません。というのも、先月テレビを買い換えたところで、やっと地デジになりました。
46インチはやっぱいいですねぇ!
オリンピックも迫力が違います。
しかし、私が見るとみんな負けちゃうんですが・・・・・!
今日から仕事を始めていますが、学校自体は今週いっぱいお休みなので、静かな環境を手に入れています。
この時期が一番仕事がしやすい時期なんですよね!
開発しようにも、普段は集中できないんです。
もうすこしこの時期が長ければなあ!
プリンターの購入 ― 2008年08月25日 11時55分44秒
夏休みの間に、自宅にあるプリンターが故障してしまいました。
以前より印刷にすごく時間がかかっていたので、おかしいと思っていたのですが、とうとう壊れたようです。
黒インクを買ったばかりなのがものすごく悔やまれます。
以前は自宅で仕事をしていたこともあり、プリンターをよく利用していたのですが、最近は年賀状くらいしかまとまった印刷はないのですが、それでもないと困るので新しいプリンターを購入しました。
買ったのは、キャノンのMX850という複合機です。
もともと私の知り合いが購入を検討していて、お店で実物を見たことがあり、機能も豊富なので良いなあと思っていたので、買ってしまいました。
複合機なので、プリンター、スキャナー、FAXなどは基本機能としてあるのですが、ADFというスキャナーの自動原稿送り装置がついていて、しかも両面の読み込みに対応しています。
印刷も自動で両面印刷ができるので、コピーなどの際に簡単に両面コピーがとれるので、コピー機能をよく使う人にはかなり使えると思います。
複合機の中でもかなり機能が豊富な機種で、LAN対応なので、複数のPCからネットワーク経由で印刷も行えますし、値段も3万円代前半なので、個人や小さいオフィスでも十分に使えると思います。
以前より印刷にすごく時間がかかっていたので、おかしいと思っていたのですが、とうとう壊れたようです。
黒インクを買ったばかりなのがものすごく悔やまれます。
以前は自宅で仕事をしていたこともあり、プリンターをよく利用していたのですが、最近は年賀状くらいしかまとまった印刷はないのですが、それでもないと困るので新しいプリンターを購入しました。
買ったのは、キャノンのMX850という複合機です。
もともと私の知り合いが購入を検討していて、お店で実物を見たことがあり、機能も豊富なので良いなあと思っていたので、買ってしまいました。
複合機なので、プリンター、スキャナー、FAXなどは基本機能としてあるのですが、ADFというスキャナーの自動原稿送り装置がついていて、しかも両面の読み込みに対応しています。
印刷も自動で両面印刷ができるので、コピーなどの際に簡単に両面コピーがとれるので、コピー機能をよく使う人にはかなり使えると思います。
複合機の中でもかなり機能が豊富な機種で、LAN対応なので、複数のPCからネットワーク経由で印刷も行えますし、値段も3万円代前半なので、個人や小さいオフィスでも十分に使えると思います。
最近のコメント