家・車以外で、人生で一番奮発した買い物

ACCESS2007でラベル印刷を印刷をしようとしています。

ページ設定ができないランタイム環境でも使えるようにラベルの印字位置を設定するVBAを考えています。

フォームに設定値を入力する「上余白」、「左余白」、「ラベル幅」、「ラベル高さ」という非連結のテキストボックスを4個作りました。

ラベル印刷用にレポートを作成し、「レポートA」としています。

レポートAにはページ設定で、基本となるラベルのレイアウトなどを設定しています。

フォームに「適用」というボタンを配置し、クリック時のイベントに以下のようなコードを書き込みました。

Private Sub 適用_Click()

DoCmd.OpenReport ("ラベルA"), acViewDesign, , , acHidden

With Reports(ラベルA).Printer
.DefaultSize = False
.TopMargin = Me.上余白.Value
.LeftMargin = Me.左余白.Value
.ItemSizeWidth = Me.ラベル幅.Value
.ItemSizeHeight = Me.ラベル高さ.Value
End With

DoCmd.Close acReport, ("ラベルA"), acSaveYes

End Sub

動作させるとエラーは出ないのですが、設定値がちっとも反映されません。

何が間違っているのでしょうか?

A 回答 (1件)

ランタイムには、結局いまだ手を出せていないのですが(汗)



> 何が間違っているのでしょうか?

ランタイムではデザインビューでは開けない、ということだった
かと思います。
http://www.naboki.net/access/heaven/heaven-01.html

ただ、レポートの「読み込み時」イベントであれば、プリンターの
(一時的な?)設定は可能と思われますので(・・・レポートも
自分ではほとんど使わないので未確認ですが・・・(汗))、

1)フォームの『適用』ボタンで、余白やラベルサイズをテーブルに
 記録
2)レポートの「読み込み時」イベントで、当該レポートを開く度に、
 そのテーブルに記録された値をDLookupで取得するなどして、
 各サイズに適用

という手順を踏めば、実質、「レポートにプリンターの設定を記録」
したのと同様の使い勝手にできる・・・のではないでしょうか。


・・・以上、未確認のアイデア提示ばかりですが(汗)、参考までに。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

質問してから、全然レスが付かなかったもので、自己解決してしまいました。

ご指摘の通り、テーブルを一個余分に作り、必要な値を記録して、レポート読み込み時イベントで反映させる方式にしました。

ちなみに、結構勘違いされる場合が多いようですが、ランタイムでデザインビューを開く事は可能です。

MDEとかだと開けませんが・・・

お礼日時:2011/06/27 13:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報

このQ&Aを見た人がよく見るQ&A