accessのbvaの本を参照してレコードがない場合でも最後まで罫線を出力する方法を試しているのですが、インクリメントがうまくいっていないのかいつまでも改ページを続けてしまいます。
どなたか解決する方法を教えてください。
Option Compare Database
Option Explicit
'次の3つの変数はdeclarationセクションで宣言します
'現在印刷中のレコード番号を表す変数
Private pintRecord As Integer
'レコードソースの全レコード数を表す変数
Private pintRecordMAX As Integer
'1ページ当たりに印刷するレコード数の定数
Private Const cintRecperPage As Integer = 15
Private Sub グループヘッダー0_Format(Cancel As Integer, FormatCount As Integer)
'現在印刷中のレコード番号を初期化します
pintRecord = 0
'レコードソースの全レコード数を取得します
pintRecordMAX = DCount("*", "T_出荷明細", "出荷No=reports![R_出荷証明書3 test]![出荷No]") '"*"にすることでクエリ内のレコード数をカウント。Null値フィールドを含むレコードも対象。
End Sub
Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
'各テキストボックスの可視/非可視のフラグ
Dim blnVisible As Boolean
'現在印刷中のレコード番号をインクリメントします
pintRecord = pintRecord + 1
If (pintRecord Mod cintRecperPage) > 0 Then
'1ページ内の途中のレコードを印刷している場合
'改ページしないようにします
Me!bpage.Visible = False
'印刷するレコードの位置によって、各テキストボックスの可視/非可視の
'フラグと、次レコードへ進めるかどうかの設定を行います
If pintRecord < pintRecordMAX Then
blnVisible = True
Me.NextRecord = True
ElseIf pintRecord = pintRecordMAX Then
blnVisible = True
Me.NextRecord = False
Else
blnVisible = False
Me.NextRecord = False
End If
Else
'1ページ内の最後のレコードになったとき
If pintRecord <= pintRecordMAX Then
'まだ印刷するレコードが残っているときはその行を印刷後、改ページします
blnVisible = True
Me!bpage.Visible = True
Else
'印刷するレコードがもうないときはその内容は印刷しません
blnVisible = False
End If
End If
'フィールドと連結したテキストボックスの可視/非可視を設定します
Me![品番].Visible = blnVisible
Me![品名].Visible = blnVisible
'Me![寸法使用].Visible= blnvisible
Me![数量].Visible = blnVisible
Me![備考].Visible = blnVisible
End Sub
No.1
- 回答日時:
コードはとくに問題がないと思われるので、
コードはそのままにして、こちらでレポートの
設定をしたものを記しますと、
(1)
T_出荷明細:
出荷No
品番
品名
(2) R_出荷証明書
ヘッダ:
レポートヘッダ
ページヘッダ
出荷Noヘッダ
詳細
ページフッタ
レポートフッタ
並べ替え/グループ化:
出荷No 昇順
グループヘッダ はい
グループフッタ いいえ
グループごと 各値
グループ間隔 1
同一ページ印刷 しない
出荷Noヘッダのプロパティ:
改ページ カレントセクションの前
レポートの詳細:
出荷No (表示が必要なければ「可視」を「いいえ」
品番
品名
(出荷Noがないとデータが表示されない)
以上の設定で15行直線コントロールを
表示し、レコードが15以上ある場合は
次のページに残りを表示しています。
上記の中で、
出荷Noヘッダのプロパティ:
改ページ カレントセクションの前
の設定が抜けている、あるいは、レポートの詳細に出荷Noが
ないとかがあるのでは、と思われます
この回答への補足
piroin654さん回答ありがとうございました。
改ページの設定はしないにしていても、カレントセクションの前にしていても変わりませんでした。
直線nextrecordを用いて次のデータに行くMAXレコードになったときは、nextrecordに移動しないという設定にしていて、直線は出続ける設定になっています。
pintRecordMAX = DCount("*", "T_出荷明細", "出荷No=reports![R_出荷証明書3 test]![出荷No]")
にしていたら、改ページする毎に1行行数が減る減少になっていて、きちんとしたMAX行がとれていませんでした。
pintRecordMAX = DCount("*", "T_出荷明細")にすることでいつまでもループし続ける現象は解消しました。
ただ、最終ページが最後まで罫線がひかれなくなりました。
この現象を解消する方法ありますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Access(アクセス) チェックボックスにチェックが入った後の挙動 1 2022/08/21 12:39
- Access(アクセス) docmd.gotorecordを起動するには 5 2022/06/17 15:20
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Access(アクセス) DoCmd.SearchForRecord が動かない時の解決方法 3 2022/07/22 15:31
- Visual Basic(VBA) 【Excel VBA】自動メール送信の機能追加 5 2022/09/29 12:53
- Visual Basic(VBA) 数式が消える 1 2023/03/19 16:55
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- Visual Basic(VBA) 【VBA】写真の貼り付けコードがうまく機能しません。 5 2022/09/01 18:43
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
accessのレポートを20行固定にする方法
Access(アクセス)
-
Accessでレポート内の繰り返しレコードの行数を固定したいです。
その他(Microsoft Office)
-
Accessの桁区切りについて教えてください。
Access(アクセス)
-
-
4
アクセスのレポートのヘッダーを2ページ以降にもつけるには?
Access(アクセス)
-
5
Accessレポートでの改ページ
Visual Basic(VBA)
-
6
Accessのレポートの集計に条件をつけたい
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
180g重量版レコードとは? 180...
-
ファイルメーカー印刷時の改ページ
-
ファイルメーカーで一括入力す...
-
ファイルメーカでの条件付き画...
-
Accessのレポートの集計に条件...
-
Accessで写真(JPEG)管理がした...
-
FileMaker起動時に前回終了時の...
-
ACCESSのフォームで次のレコー...
-
FileMakerで特定のレコードのみ...
-
ADOで現在のレコードの次のレコ...
-
ラベルをクリックしてレコード...
-
LIKEとINを同時に使いたい
-
差込印刷で顧客別に複数行のデ...
-
accessのマクロで「一時変数設定」
-
アクセスのレポートのヘッダー...
-
Accessのクエリで1フィールドの...
-
「#エラー」の回避
-
accessのフォームに設置したボ...
-
Access2007でSQLの複数列副問い...
-
Access チェックボックスを使...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
差込印刷で顧客別に複数行のデ...
-
ADOで現在のレコードの次のレコ...
-
ACCESSのフォームで次のレコー...
-
Accessのレポートの集計に条件...
-
日付の加算・減算ってできますか?
-
アクセスデータベースのUnicode...
-
ホスト汎用機でのNDBアクセス方法
-
ACCESSのレコード操作で1つ前...
-
ファイルメーカーで最大シリア...
-
accessのマクロで「一時変数設定」
-
アクセスでのエクセルでいう行...
-
180g重量版レコードとは? 180...
-
ACCESSでのランダムのレ...
-
ファイルメーカーで検索条件の...
-
ファイルメーカーでレコード複...
-
PSQLで-- More --を表示しない方法
-
LIKEとINを同時に使いたい
-
access レポートで罫線...
-
Docmd.Findrecordで空白の検索方法
-
ファイルメーカーで該当件数を...
おすすめ情報