過去ログ

                                Page     466
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼2種類のレポートを交互に印刷したい  morik 03/12/15(月) 16:17
   ┗Re:2種類のレポートを交互に印刷したい  でん 03/12/16(火) 14:06
      ┗Re:2種類のレポートを交互に印刷したい  morik 03/12/18(木) 10:43

 ───────────────────────────────────────
 ■題名 : 2種類のレポートを交互に印刷したい
 ■名前 : morik
 ■日付 : 03/12/15(月) 16:17
 -------------------------------------------------------------------------
   現在、2種類の請求明細書のレポートを作成しています。
実現したいことはこの2種類の明細書を交互に印刷することです。

1種類目のレポートは顧客コードに対して必ず1枚です。
2種類目のレポートは顧客コードによって枚数が複数枚になったりします。

顧客コードと同じレコードに印刷チェックがありその印刷チェックが入ったものだけを印刷したいのですが

いまVBAのプログラムで以下のようにすると

Dim dbs As Database
Dim rs, rs1 As Recordset
Dim flg As String
Dim value As String
Dim id As String

id = Me!selectbox.value


flg = "0"
Set dbs = CurrentDb
Set rs = dbs.OpenRecordset("データ1")
Set rs1 = dbs.OpenRecordset("マスタ")


Do Until rs1.EOF
If (id = rs1!顧客NO) Then

rs.MoveFirst

Do Until rs.EOF
 
 If rs!印刷チェック = True Then
 
 DoCmd.OpenReport rs1!明細1, acNormal
 DoCmd.OpenReport rs1!明細2, acNormal
 
 rs.Edit
 rs!印刷チェック = False
 rs.update
 
  flg = "1"
 End If

rs.MoveNext
Loop
rs1.MoveNext

Else
rs1.MoveNext
End If

Loop

印刷チェックの入った明細1のレポートが全て印刷された後に明細2のレポートが全て印刷されてしまいます。

これを交互に印刷する方法をご存知の方教えてください。

お願い致します。

 ───────────────────────────────────────  ■題名 : Re:2種類のレポートを交互に印刷したい  ■名前 : でん  ■日付 : 03/12/16(火) 14:06  -------------------------------------------------------------------------
   morik さん、こんにちわ

>1種類目のレポートは顧客コードに対して必ず1枚です。
>2種類目のレポートは顧客コードによって枚数が複数枚になったりします。

明細1は、必ずある。
でも明細2は、有るか無いか分からない上に何枚出るかも分からないってやつですね?

以前、同じ事で私も困りました。

私は、明細1の中に明細2をサブフォームとして作成しました。
------------------------------------

明細1の内容

改頁記号

明細2(サブフォーム)

------------------------------------
ってやつを一つのフォームとして作成して、
明細2が不必要なときは、改頁記号を非表示にして明細2の高さを”0”に。
明細2が必要なときは、改頁記号を表示して明細2を本来の高さに。
として作業しました。

と言っても、この問題が出たときは複数人で作業をしていましたので、
私は、方法を思い付いただけで実践したのは私ではありません。
無責任な発言ですみません。

ただ、この方法で処理は現在も稼働しております。

御健闘をお祈り致します。

 ───────────────────────────────────────  ■題名 : Re:2種類のレポートを交互に印刷したい  ■名前 : morik  ■日付 : 03/12/18(木) 10:43  -------------------------------------------------------------------------
   でん さん丁寧な御説明ありがとうございました。

レポートを交互に印刷するために以下のようなプログラムを作成しました。

DoCmd.OpenQuery "印刷チェック戻し"

Do Until rs.EOF

        rs.Edit
        rs!印刷チェック = True
        rs.Update

        DoCmd.OpenReport rs1!レポート1, acNormal

        DoCmd.OpenReport rs1!レポート2, acNormal

        flg2 = 1

        rs.Edit
        rs!印刷チェック = False
        rs.Update

        rs.MoveNext

      Loop

DoCmd.OpenReport命令を実行すると全件出力してしまうので一度印刷チェックフラグを全部オフにしてループで一件ずつしかデータが出力されないようにしましたところ1件ごとにレポートを交互に出力することが出来ました。

ありがとうございました。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 466