お世話になります。
現在作成中の見積フォームが整ってきたので、レポートとEXCEL出力を検討しています。
アクセス自体初心者ですが、レポートは特にまだ経験がほとんどありません。
手動で修正したいところも出てきそうなので、レポートと共にEXCELでもレポートライクなものを作りたいと思っているのですが、EXCELはレポートから出力できないと知りました…
①VBAでEXCEL出力する際、レポートのようなものは作れますでしょうか。
具体的にはメインフォームとサブフォームの両方を、上下に並べて配置。(メイン部分は宛名などの情報。サブはヘッダー、詳細、フッターで見積もり内容。)
グループ名も挿入。
②レポートについてはレイアウトの問題ですが、列(フィールド)の増減に対応できますか?見積によって、特定のフィールドに何もデータがない場合があります。
大きな質問をざっくりお尋ねして申し訳ありません。
検索していても、これというサイトに行き当たることができず、現在レポートの本を読んでいるところです。
xls形式なら、レポートのプレビューからExcelに出力できますよ。
レポートは(*.xlsx)ファイル形式に出力できない | Access 2013 | 初心者のためのOffice講座
ただし、レポートの体裁がそのまま正確に再現できるかどうかは分かりません。
VBAを使えば簡単ではないですが、何でもできます。
それなりのスキルは必要です。
可能です。
いろいろ方法はあります。
いずれもできるとのことで、嬉しくなりました!
①VBAでチャレンジしてみたいと思います。
参考サイトを探し、不明な場合はまた質問させていただきます。
②行を詰めるのと同じでプロパティでも可能でしょうか。今から作成に取りかかっていきたいと思います。
列詰めはコントロールの移動が必要なので、VBAでやるのがシンプルだと思います。
クエリでやろうと思えばできないことはないですが。
下記はレコードソースがクロス集計クエリで列数が変化する場合のサンプルです。
列数が変化するクロス集計クエリと連結するフォーム - hatena chips
フォームですが、レポートでも同じ方法で可能です。
レポートの作成が落ち着いてきたため、Excelへの出力を考えています。
かなり難しそうですね…
無理かもしれませんが・・・イメージを教えてください。
①アクセスから該当のデータをクエリからエクセルにエクスポート(サブとメインあわせて2つ)
②エクセルから2つのデータを取り込み、任意の配置を行う。
④配置されたデータから判断して罫線を引く。色を塗る。
このようなVBAの流れになりますでしょうか。
アクセスでエクスポートして、続きはエクセルのVBAでしょうか。
以上よろしくお願いいたします。
ACCESS VBAでそのままEXCELを操作する感じでしょう
AccessからExcelへ出力させるVBAの書き方(note - DeepBlue Writingさん)
Excelセルへ個別出力する基本パターン(T'sWareさん)
事前バインディングと遅延バインディング(実行時バインディング)(鵜原パソコンソフト研究所さん)
VBプログラムで開発環境と実行環境のExcelのバージョンが異なるとき(Qiita -@carbonated3030さん)
AccessのVBAでExcelを参照設定なしで使う方法(てつみのブログさん)
色々と参照ページを教えていただき、ありがとうございます。1つずつ紐解いていけば必ず作成できるんですよね…
聞きなれないワード(バインディング)にビビっていますが、なんとか地道に作成していきたいと思います。ありがとうございました!
参考に挙げたものは基本的なところなのであとはExcel VBAの知識が必要になります
大まかな書式(罫線や塗りも含め)はテンプレートとしてExcelファイルを作っておき、VBAでシートのコピーや行、セルのコピーで書式を整形して、そうしたらデータを流し込む
こんな流れになると思います。書式の設定からVBAでやってもいいんですが、いずれにせよその部分はEXCEL VBAの知識で組み立てることになります。記述自体はACCESS VBAの上でもできますよ(諸注意あり)という具合ですね
というわけで、「書式の整形がうまくいきません」ならExcel(Excel VBA)の問題になるので情報の調べ方に気を使ってみてください