-PR-
締切り
済み

ACCESSレポートで頁フォーマット時にVBコードで頁の余白を指定するには?

  • 暇なときにでも
  • 質問No.1453
  • 閲覧数1269
  • ありがとう数7
  • 気になる数0
  • 回答数4
  • コメント数0

ACCESSレポートで頁ごとに、余白の設定をしたいので、
メニューの[ファイル]-->[余白]で余白を設定するのではなく、
頁フォーマット時にVBコードで頁の余白を指定したくて
以下のようなコードを書いてみたのですが、うまくできません。

Private Sub Report_Page()
 Msgbpox Me.Left
End Sub
とレポート内のモジュールに書くと、左余白のインチが表示されたので、

Private Sub Report_Page()
 Me.Left = 567 * 3
End Sub
と入力しましたが、
「このプロパティは読みとり専用であるため。。。」
というエラーが表示されてしまいました。

何か良い方法を教えて下さい。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1
レベル11

ベストアンサー率 47% (95/199)

PrtMipプロパティというのがあります。それを使うとできそうです。 AccessのHELPをみてください。 ...続きを読む
PrtMipプロパティというのがあります。それを使うとできそうです。
AccessのHELPをみてください。
参考URL:Accessのヘルプ
補足コメント
noname#3357

回答ありがとうございます。
さっそく、PrtMip プロパティのヘルプを見てました。が、
「デザイン ビューでは変更が可能ですが、その他のビューでは参照のみ可能です。」と書いてあり、
実際に使用例を利用してコードを書いてみて、プレビューすると、
エラーがでてしまいます。
このプロパティを理解できてないからかもしれません。
プレビュー時に、データの内容によって、余白を変更したいのですが、
無理なのでしょうか?


投稿日時 - 0000-00-00 00:00:00

  • 回答No.2
レベル11

ベストアンサー率 47% (95/199)

補足を拝見しました。 すみません。こちらもAccessのヘルプを「余白」で検索したら「PrtMipプロパティ」というのがあったので、検証もせずにそのまま答えを送信してしまいました。 「参照のみ可能」ということは、ページフォーマット時に余白の値は参照できるけど、設定はできないということなので、できないのかもしれません。 一つのページごとに別々のレポートに出力するとか?そういうのはだめでしょうか? 基 ...続きを読む
補足を拝見しました。
すみません。こちらもAccessのヘルプを「余白」で検索したら「PrtMipプロパティ」というのがあったので、検証もせずにそのまま答えを送信してしまいました。
「参照のみ可能」ということは、ページフォーマット時に余白の値は参照できるけど、設定はできないということなので、できないのかもしれません。
一つのページごとに別々のレポートに出力するとか?そういうのはだめでしょうか?
基本的に私はAccessのレポートは融通が利かないので嫌いです(^^;)。
反則技になりますが、Wordではページごとに印刷設定ができますから、OLEでWordに値を出力して印刷させてはいかがでしょう?(差し込み印刷になりますか?)
ちなみに私の場合ですが、帳票類を印刷するときにはExcelに値をOLEで貼り付けて印刷しています。その方が印刷に関してはかなり融通が利きます。ついでに複雑な計算類もExcel上でやらせています。Accessでは抽出した値をExcelに貼り付けるだけですみますので。
補足コメント
noname#3357

maroさん、助言、ありがとうございます。
おっしゃる通りで、excelの方が融通が利きますよね。
私もword、excel等での出力も考えたのですが、
今現在、約60000レコードでカラム数も多く、
将来的には、7万、8万レコードになることも考慮すると、
excel97では、1シート内に収まらないし、
wordに7万、8万レコードを排出するのは無理がある。(と勝手に決めつけました。)
それで、Accessのレポートで、出来るといいな
と思ったのですが、安易ですね。(^^;)
ページごとに別々のレポートに出力する方法をとろうか
思います。
ありがとうございました。m(_ _)m

ところで、OLEの話がありましたので、
OLEのことで質問してもよろしいですか?
処理レコード数は4万程度なんですが、
OLEを使って、ACCESSデータをEXCELにデータを書き込むと、
処理速度がとっても遅いのです。
今は、ACCESSデータをテキストにし、EXCELのVBAでそのテキストを読み込んで、
書き込むという、いわば回り道みたいな方法をとっているのですが、
(ACCESSデータをテキストする時間をあわせてもこちらの方が私には処理速度が速く感じるので)
OLEを使ったコーディングが悪いのでしょうか?
勉強不足ですみませんが、教えていただけないでしょうか。
投稿日時 - 0000-00-00 00:00:00
  • 回答No.3
レベル11

ベストアンサー率 47% (95/199)

何万件ものレコードをそのまま印刷するのですね?それじゃあExcelに吐き出すのは無理ですね。Excelは最大3万行ちょっとですからね。 OLEでExcel上にデータを書き込むのは結構遅いみたいです。ExcelのオブジェクトのVisibleをTrueにしてみると、書き込んでいく様子が見えますから(^^;)。 データの抽出に時間がかかるということならSQL Serverに置き換えたらいかがでしょう?A ...続きを読む
何万件ものレコードをそのまま印刷するのですね?それじゃあExcelに吐き出すのは無理ですね。Excelは最大3万行ちょっとですからね。
OLEでExcel上にデータを書き込むのは結構遅いみたいです。ExcelのオブジェクトのVisibleをTrueにしてみると、書き込んでいく様子が見えますから(^^;)。

データの抽出に時間がかかるということならSQL Serverに置き換えたらいかがでしょう?Access2000ならSQL Server互換のMSDEが使えますし。MSDEならWindowsNTでなくてもWindows95/98で動作しますし、サーバーとクライアントを同じマシンで運用できます。(というか、MSDEをインストールしたマシンでAccessを動かすということですね)Access97から別のマシンにインストールしたMSDEにアクセスすることも可能です。
12万件程度のレコードがあるテーブルからレコードを抽出するのにMDBファイルならかなり時間がかかるのにSQL Server(MSDE)ならあっという間にすんでしまいます。

見当違いな答えでしたらごめんなさい。
補足コメント
noname#3357

SQL Server互換のMSDEですか。勉強してみます。
たくさんのアドバイスありがとうございました。
投稿日時 - 0000-00-00 00:00:00
  • 回答No.4
レベル13

ベストアンサー率 46% (643/1383)

Accessの場合、ページごとに動的に余白を設定する機能はありません。 ですから、「ページごとにすべてのコントロールを移動させる」ことによって対処します。 すべてのコントロールを右に100twips 移動させるには、 Dim CTL as Control For Each CTL In Me.Controls CTL.Left=CTL.Left + 100 Next CTL ...続きを読む
Accessの場合、ページごとに動的に余白を設定する機能はありません。
ですから、「ページごとにすべてのコントロールを移動させる」ことによって対処します。

すべてのコントロールを右に100twips 移動させるには、
Dim CTL as Control
For Each CTL In Me.Controls
CTL.Left=CTL.Left + 100
Next CTL

ってなコードを適当なFormatイベントの中に書いてやります。

実際にコーディングするなら、Open時にコントロールの初期位置を配列に読み込んでおいて、それに加減算するって形が扱いやすいかな…


尚、静的に余白を設定するんであれば(既に回答があるように)PrtMipプロパティを使うといいです。
application.echo false
docmd.OpenReport "Report_Name",acViewDesign
'-適当にPrtMipを設定-
docmd.close acreport,"Report_Name",acSaveYes
application.echo true

こんな感じ。
補足コメント
noname#3357

回答ありがとうございました。
なるほど。
さっそく、やってみますね。
助かりました。_(._.)_
投稿日時 - 0000-00-00 00:00:00
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このやり方知ってる!同じこと困ったことある。経験を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ