• ベストアンサー

アクセス レポート

よろしくお願いします。 レポートを作成し、その中に文字と添付画像を表示させるようにA4 1ページに作成しました。 しかしすべてのデータに添付画像があるわけではないので、そのまま印刷すると、画像なしのデータでは画像部分が空白になってA4印刷されます。 非常にもったいない気がするので、この画像なしのデータの印刷時には画像部分を印刷せず、次のレポートを続けて印刷することはできるのでしょうか。 これが不可能であるならば、これに近い表示ができる方法をご存じでしたらご教授ください。 win7 64 バージョン2007です よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.4

#2です。 1ページ余分に改ページされてしまいますので、ちょっとだけ改良しました。ご参考まで。 下記構造のテーブル:Table1で試しています。 Field(0) ID オートナンバー型 Field(1) 記事 文字列型 Field(2) pidFile 添付ファイル型(画像ファイルを0~1個添付) Dim prtRecCount As Long Dim prtRecNo As Long Dim originalPicHeight As Double Private Sub Report_Open(Cancel As Integer) 'デザイン画面で設定したピクチャーボックス?のサイズを生かす  originalPicHeight = Me.picFile.Height End Sub Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer) prtRecCount = DCount("ID", "Table1") prtRecNo = 0 End Sub Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) 'Me.picFileはNULLにならないので、添付ファイル名を配置 If FormatCount = 1 Then prtRecNo = prtRecNo + 1 If IsNull(Me.picFile_FileName) Then Me.picFile.Height = 0 Me.picFile.Visible = False Me.改ページ9.Top = Me.picFile.Top + Me.picFile.Height Me.詳細.Height = Me.改ページ9.Top + 10 Me.改ページ9.Visible = False Else Me.picFile.Visible = True Me.picFile.Height = originalPicHeight Me.改ページ9.Top = Me.picFile.Top + Me.picFile.Height If prtRecNo < prtRecCount Then Me.改ページ9.Visible = True End If End Sub

kondate
質問者

お礼

お返事が遅くなりました。 詳しく書いていただいてありがとうございます。 ただ現時点の私ではせっかくのコードを理解しながら使いこなすことができません。 参考にさせていただきながら地道に考えていきたいと思います。 ありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (3)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

状況が良く飲み込めませんが、 こんな感じで作られているのでしょうか _________________________________________ レポートヘッダ _________________________________________ ページヘッダ _________________________________________ 詳細セクション               文字文字           文字 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|        画像          |                    | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ----------------------------------------- ページフッタ ----------------------------------------- レポートフッタ ----------------------------------------- A4一枚に複数のレコードが印刷されている 画像はセクションの下側に配置されている ならレポートのフォーマット時イベントか プリント時イベントで、画像の有無を判断して 画像コントロールの高さをゼロ 詳細セクションの高さもそれに応じて少なくする・・ ようなコードをmitarashiさんのようにVBAで作成すれば、 良いかと思います。 予め画像コントロールの位置とサイズそして詳細セクションの高さを 定数に置いといて、フォーマット時かプリント時に動的に変化させるのが 良いかと考えられますが、 画像が複数だったり、位置が詳細セクションの上のほうだったりすると テキストボックスコントロールの位置も変えねばならず 難易度はさらに増してきます。 一般機能では質問者さんの望むことは用意されていませんので VBAで作りこむしかありません。 もしくは、画像がひとつしか無い場合ならば #1さんのように画像の有無をで分けたクエリを二つ用意して この二つのクエリをレコードソースとするレポートを別個に作るしかありません。

kondate
質問者

お礼

遅い返事になり申し訳ありません。 /一般機能では質問者さんの望むことは用意されていませんので /VBAで作りこむしかありません。 一般機能にないとなると現在の私では現実的な構築には時間がかかると思います。 ご意見を参考にさせていただいて挑戦していきたいと思います。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • mitarashi
  • ベストアンサー率59% (574/965)
回答No.2

Access2010のレポートを初めて使ってみました(^^;)当方、常用は2000です。 単票形式のレポートの作り方を見つけるまでが一苦労... 添付ファイル型のフィールドpicFileに、添付ファイル1~0個を添付してテストしました。 レポートの詳細セクションの最下部に改ページコントロールを配置し、 レポートの詳細セクションのFormatイベントに記述します。 とりあえず出来たというだけで、完成度は低いです。 試行錯誤の経過をコメントでごちゃごちゃと書いてあります。ご参考まで。 Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer) ' Me.詳細.AutoHeight = False '結局コントロールの存在する位置まで拡張されるので機能せず 'Me.picFileはNULLにならないので、picFileに付随して生成される添付ファイル名を配置(不可視にしてもOK) If IsNull(Me.picFile_FileName) Then Me.picFile.Height = 0 Me.picFile.Visible = False '改ページコントロールの位置に合わせて自動拡張されてしまう対策 Me.改ページ9.Top = Me.picFile.Top + Me.picFile.Height + 10 Me.詳細.Height = 20 'とりあえず試行錯誤で決定 Me.改ページ9.Visible = False Else Me.picFile.Visible = True Me.picFile.Height = 4000 Me.改ページ9.Top = Me.picFile.Top + Me.picFile.Height + 10 Me.改ページ9.Visible = True 'Me.詳細.Height = 2000 '結局コントロールの存在する範囲に自動拡張される。 End If End Sub

すると、全ての回答が全文表示されます。
  • layy
  • ベストアンサー率23% (292/1222)
回答No.1

空白エリア前詰めしたらいいのに、か。 画像有り無しの判断材料はあるか。 印刷しないとわからないか、印刷前に無いとわかった上でのことか。有り無し無し有り無しみたいに並んでしまうのか。 レポート有りバージョン、無しバージョンと2つ用意して、ボタン1つでそれぞれ出すのはよくある話。

kondate
質問者

お礼

返事が遅くなりまして申し訳ありません。 ご意見をありがとうございました。

kondate
質問者

補足

・空白エリア前詰めしたらいいのに、か。 おおざっぱにはそういったことになります。 ・画像有り無しの判断材料はあるか。 印刷しないとわからないか、印刷前に無いとわかった上でのことか。有り無し無し有り無しみたいに並んでしまうのか。 画像のありなしは別テーブルで定義してクエリで一致させますので、事前にはわかります。 しかしデータの中に画像のあるものないものがあり、その中から無作為的に選択するので、クエリのビューでは事前確認はできます。 ・レポート有りバージョン、無しバージョンと2つ用意して、ボタン1つでそれぞれ出すのはよくある話。 先ほどのように 有り無しは不定期に出現するので、ひとつひとつ行うのは非実用的です。 画像がないときはその分を詰めて印刷するといったものを自動で処理する方法を知りたいのです。

すると、全ての回答が全文表示されます。

関連するQ&A