|
たびたびすみません、また教えてください。
レポートで見積書を作成しており、印刷時にデータがなくても用紙のしたまで
罫線を引きたかったので、参考に出来るサイトがないかと探したところ
ニキータさんの「魔法使いの開発工房」にぴったりのVBAが載っていたので
早速自分で書いてみましたが、上手くいきませんでした。
ニキータさんの作った見積書レポートとデザインが違うせいだと思いますので
私の作ったレポートの構成を説明すると、
「Q_親注番」クエリ(フィールド名が"親注番"(グループ化)、"会社名"(グループ化)、"客担当者"(グループ化)、"見積担当者"(グループ化)、"注番選択"で見積書作成時に親注番(見積No.にする)を選択出来るように"注番選択"の抽出条件に[親注番は?]と入力してあります。)をレポートヘッダに配置し、
「Q_注番別コスト計」(フィールド名が"親注番"(グループ化)、"品番"(グループ化)、"品名"(グループ化)、"注文数量"(グループ化)、"単位"(グループ化)、"見積単価""(グループ化)、"見積金額""(グループ化))をサブレポートとして、詳細に入っています。
また詳細のサブレポートの内訳はレポートヘッダに"品番"〜"見積金額"のラベルと"見積金額合計"のテキストボックスがあり、詳細に"品番"〜"見積金額"のテキストボックスがあります。
また、2ページ目以降のヘッダにするため、ページヘッダに"品番"〜"見積金額"のラベルがあります。(ここだけニキータさんの例と一緒です)
あと、改ページは初めサブレポートの詳細に入れたらVBA実行時に改ページが見当たらないとエラーが出たので、レポートの詳細内に(サブレポート全体のボックスのすぐ下)に配置しました。
説明が長くなりましたが、以上の設定で書いたコードは次の通りです。
Option Compare Database
Dim AAA As Integer '今何行目なのかをカウントするための変数
Dim BBB As Integer '今回印刷する予定のレコード件数をいれておく変数
Private Sub レポートヘッダー_Format(Cancel As Integer, FormatCount As Integer)
AAA = 0
BBB = DCount("品番", "Q_注番別コスト計")
Me!改ページ30.Visible = False
End Sub
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
AAA = AAA + 1
If AAA Mod 30 = 0 Then
If AAA < BBB Then
Me!改ページ30.Visible = True
Me!Section(3).Visible = True
ElseIf AAA = BBB Then
Me!親注番.Visible = True
Me!品番.Visible = True
Me!品名.Visible = True
Me!注文数量.Visible = True
Me!単位.Visible = True
Me!見積単価.Visible = True
Me!見積金額.Visible = True
Else
Me!親注番.Visible = False
Me!品番.Visible = False
Me!品名.Visible = True
Me!注文数量.Visible = False
Me!単位.Visible = Falsee
Me!見積単価.Visible = False
Me!見積金額.Visible = False
End If
Else
Me!改ページ30.Visible = False
Me!Section(3).Visible = False ’1度目のエラー箇所
If AAA < BBB Then
Me.NextRecord = True
Me!親注番.Visible = True
Me!品番.Visible = True ’2度目のエラー箇所
Me!品名.Visible = True
Me!注文数量.Visible = True
Me!単位.Visible = True
Me!見積単価.Visible = True
Me!見積金額.Visible = True
ElseIf AAA = BBB Then
Me.NextRecord = False
Me!親注番.Visible = True
Me!品番.Visible = True
Me!品名.Visible = True
Me!注文数量.Visible = True
Me!単位.Visible = True
Me!見積単価.Visible = True
Me!見積金額.Visible = True
Else
Me.NextRecord = False
Me!親注番.Visible = False
Me!品番.Visible = False
Me!品名.Visible = True
Me!注文数量.Visible = False
Me!単位.Visible = Falsee
Me!見積単価.Visible = False
Me!見積金額.Visible = False
End If
End If
End Sub
これで実際に実行すると、
実行時エラー'2465':
指定した式で参照されている'Section'フィールドが見つかりません。
となりました。
改ページしてページヘッダを表示する箇所はエラーが出てないのですが・・・
それでページヘッダの箇所を2箇所とも削除して実行してみたら、
今度は'品番'フィールドが見つからないとエラーが出てしまいました。
次にデザイン事態をニキータさんのように作り変えよう(サブレポートでなく
初めから2つのクエリをしてしてレポートを作る)とやってみたら、
2つのクエリは同じテーブルを基に作っているので出来ませんでした。
どうしたら解決出来るのか教えて下さい。よろしくお願いします。
|
|