access2003を使用しています。
フォームから印刷するデータの条件をあたえ、ボタンを一回押下することで複数のレポートを印刷するようにしたいのですが、、、
現状では、一枚目のレポートを全部印刷したあと、二枚目のレポートを全部印刷、次に三枚目となってしまいます。
やりたいことは、1レコード目のデータのレポートを全部印刷したあと2レコード目のデータのレポートを印刷、次に3レコード目のデータ、、、という風に行いたいと思っています。
1レコードずつ抽出してforループさせればいいと思っていますが、具体的にどういうコードを書けばいいかわかりません。
どうすればよいでしょうか?
No.5ベストアンサー
- 回答日時:
No.2ですが、質問をよく読んでなかったのでとんちんかんな回答になってしまいました。
1レコードずつ選択したいとのことですが、そのレポートを印刷するときに
DoCmd.OpenReport "レポート名"
などと書いているかと思いますが、その際に
DoCmd.OpenReport "レポート名", , , "社員NO=10"
と書くと社員NO.10のデータだけ印刷出来ます。
このように条件を指定することで印刷が出来るわけですが、
印刷したいデータをどうやって取得するかはレコードセットなどの
知識が必要になると思います。
レコードセットがわかるようなら、レコードセットをDoループなどでまわして社員NOのところにセットすればよいでしょう。
No.4
- 回答日時:
× Const ID取得文 = "SELECT ID FROM tab1 WHERE ID>%% ORDER BY ID"
○ Const ID取得文 = "SELECT Top 1 ID FROM tab1 WHERE ID>%% ORDER BY ID"
もしくは、DLookup関数の類。
で、DLookup関数の類を使う予定で Top1 を抜いていました。
チト、バグです。
No.3
- 回答日時:
ルーチンのみ・・・。
tab1:
ID_fld1
1__A
2__B
3__C
[イミディエイト]
SELECT Top 1 * FROM tab1 WHERE ID> 0 ORDER BY ID
1;A;
SELECT Top 1 * FROM tab1 WHERE ID> 1 ORDER BY ID
2;B;
SELECT Top 1 * FROM tab1 WHERE ID> 2 ORDER BY ID
3;C;
Option Compare Database
Option Explicit
Const ID取得文 = "SELECT ID FROM tab1 WHERE ID>%% ORDER BY ID"
Const RC取得文 = "SELECT Top 1 * FROM tab1 WHERE ID>%% ORDER BY ID"
Private Sub コマンド0_Click()
Dim I As Integer
Dim N As Integer
Dim ID As Long
Dim strSQL(1) As String
N = DBCount("*", "tab1")
ID = 0
For I = 1 To N
strSQL(0) = Replace(ID取得文, "%%", str(ID))
strSQL(1) = Replace(RC取得文, "%%", str(ID))
Debug.Print strSQL(1)
Debug.Print DBSelect(strSQL(1))
ID = CutStr(DBSelect(strSQL(0)), ";", 1)
Next I
End Sub
DBCount関数、DBSelect関数等の詳細は、余り関係ありませんので割愛します。
要は、1レコードづつ順番に取得できている点です。
仕掛けとしては、これでOKかと思います。
レポートのレコードセットをこのようにセットすれば良い訳ですから・・・。
No.2
- 回答日時:
一つのレポートに3種類の帳票を作る
か
1レコードずつレポートを開いて順番に印刷する
のどちらかでしょうね。
単票のようなので1レポートに3種類のページを作るのは不可能ではないかと思います。
フッター・ヘッダーや「改ページ」などをうまく使ってみてください。
No.1
- 回答日時:
質問している意図が、判りかねますが・・・
レポートのレコードソース次第じゃないでしょうか?
フォームからの条件で、1レコードしか無い条件だったのか?
複数レコード選択される条件だったのか?
OpenReportにて、whereconditionを変化させながら、For文で回しても可でしょうけどね
もう少し具体的に話が出てこないと、なんとも・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) Accessフォームからパラメーターで表示したレコードを指定のExcelのセルへ転送する方法について 2 2022/08/22 18:04
- 年賀状作成・はがき作成 Wordによる宛名印刷 2 2023/01/04 15:36
- Visual Basic(VBA) Accessフォームで全レコードを指定のExcelのセルへ転送し印刷する方法について 2 2022/09/08 18:23
- Excel(エクセル) エクセルのマクロで複数シートを両面印刷するには? 2 2022/12/08 23:23
- その他(ソフトウェア) 写真の印刷レイアウトについて 13 2023/05/31 07:20
- Visual Basic(VBA) VBAで不特定枚数印刷をしたいです。 4 2022/08/02 07:30
- スーパー・コンビニ セブンイレブンのネップリで、書き忘れたレポートの1枚を印刷したくて登録したんですが、画質が悪くて文字 1 2022/05/18 09:45
- 会計ソフト・業務用ソフト 一太郎で封筒の宛名印刷したいです。 1 2023/07/20 10:14
- Access(アクセス) お世話になっています 下記データがクエリにあります。 商品名 A A B B B B B C C C 1 2022/09/11 21:07
- Access(アクセス) 【アクセス】レポート テキスト枠線が消えた 1 2022/07/02 17:40
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access レポート印刷するときに...
-
Accessのフォームで、画面表示...
-
ACCESS フォームをそのまま印刷...
-
Accessでワードのような袋とじ...
-
ACCESSからVBAでWORDの印刷を..
-
アクセスのレポート合成(複数...
-
access97のレポートを複数枚印...
-
accessのフォームをレポートに...
-
アクセスで特定のレコードのみ...
-
Access2013 レポートを印刷する...
-
ACCESSの複数レポートの印刷に...
-
ACCESS チェックしたも...
-
Access レポート印刷時のイベン...
-
アクセス2000でレポート印刷
-
Accessのレポートで1レコード...
-
アクセスで希望のレポートを1枚...
-
【Access】フォームのプロパテ...
-
MS Access 印刷時に、印刷レコ...
-
Accessのフォーム単票印刷で印...
-
YahooのIDがロックされてしまい...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Access レポート印刷するときに...
-
ACCESS フォームをそのまま印刷...
-
アクセスのレポート合成(複数...
-
Accessのフォームで、画面表示...
-
アクセスで特定のレコードのみ...
-
ACCESSのレポートで、指定した...
-
アクセスのフォーム画面の印刷...
-
MS Access 印刷時に、印刷レコ...
-
ACCESSの複数レポートの印刷に...
-
Access2013 レポートを印刷する...
-
ACCESS チェックしたも...
-
アクセスで希望のレポートを1枚...
-
ACCESSのマクロで特定のレポー...
-
【Access】フォームのプロパテ...
-
ボタン1つで1度に複数枚印刷す...
-
サブフォームの印刷方法を教え...
-
Access 宛名ラベル レポートの...
-
Accessフォームからパラメータ...
-
access2010のレポート印刷につ...
-
アクセス2000レポートで、印刷...
おすすめ情報