Page 4 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 通常モードに戻る ┃ INDEX ┃ ≪前へ │ 次へ≫ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼サブフォームに抽出したものを印刷したい sino 02/8/27(火) 11:01 ┗Re:サブフォームに抽出したものを印刷したい こうちゃん 02/8/27(火) 11:27 ┗Re:サブフォームに抽出したものを印刷したい sino 02/8/27(火) 12:16 ┗Re:サブフォームに抽出したものを印刷したい こうちゃん 02/8/27(火) 13:02 ┗Re:サブフォームに抽出したものを印刷したい sino 02/8/27(火) 15:26 ┗Re:サブフォームに抽出したものを印刷したい こうちゃん 02/8/27(火) 16:01 ┗Re:サブフォームに抽出したものを印刷したい sino 02/8/27(火) 17:37 ─────────────────────────────────────── ■題名 : サブフォームに抽出したものを印刷したい ■名前 : sino ■日付 : 02/8/27(火) 11:01 -------------------------------------------------------------------------
サブフォームに抽出したものを印刷したいのですが方法がわかりません。 メインフォームにテキストボックスを置き、日付を入力してコマンドボタンを押すことで、同じ日付のレコードを抽出するようにしました。 それは以下の文です。 Private Sub cmd抽出_Click() Me!サブフォーム名.Form.Filter = "Q_日付 Like '*" & Me!txt日付 & "*'" Me!サブフォーム名.Form.FilterOn = True End Sub それでこの抽出したレコードのみを印刷したいのですが、上手くいきません。 どうしたらよいでしょうか? どなたか教えてください、お願いいたします。 |
sino さん、こんにちは >サブフォームに抽出したものを印刷したいのですが方法がわかりません。 > >メインフォームにテキストボックスを置き、日付を入力してコマンドボタンを押すことで、同じ日付のレコードを抽出するようにしました。 >それは以下の文です。 > >Private Sub cmd抽出_Click() > Me!サブフォーム名.Form.Filter = "Q_日付 Like '*" & Me!txt日付 & "*'" > Me!サブフォーム名.Form.FilterOn = True >End Sub > >それでこの抽出したレコードのみを印刷したいのですが、上手くいきません。 上手くいかないときには、どううまくいかないのか、現在のコード等を含めて示していただけるとレスがつけやすいです。 印刷はレポートで行いたいということでいいですか? 条件(もとのテーブルやクエリの構造等)や、どんなふうに印刷したいのかがわかりませんので、一般論です。 必要なデータを印刷するレポートを作成しておいて、そのレポートを開くとき(印刷するとき)に条件を指定します。 下の例は、"t1"というレポートを作成しておいて、「cmd印刷」ボタンをクリックした時に"Me!txt日付"を"Q_日付"の Like条件に設定してプレビューする例です。 Private Sub cmd印刷_Click() Dim stDocName As String stDocName = "t1" DoCmd.OpenReport stDocName, acPreview, , _ "Q_日付 Like '*" & Me!txt日付 & "*'" End Sub こんな感じでどうでしょうか? |
こうちゃんさん、お答えありがとうございます。 さっそく実行してみたのですが、やはり上手くいきません。 レポート印刷にいたるまでは、最初にも書きましたがメインフォームのテキストボックスに抽出条件を指定して、それをサブフォームに表示し、そのレコード印刷したい、ということです。 実はそのメインフォーム、サブフォームともに3種類あります。 仮にメインをM1、M2、M3、サブをS1、S2、S3とすると、まずM1にS1を組み込んで、抽出用のボックス、ボタン、さらにコードも書き込みました。 それをコピーしてM2、M3をつくり、サブフォームをあとからS2、S3を組み込み直しました。コードもサブフォーム名やレポート名などを書き直しました。 その結果、M1は上手く作用するのですが、M2、M3ではサブフォームに表示する抽出は上手くいっても、実際に印刷プレヴューにかけたとき抽出されるのはM1の抽出レコードになってしまうのです。 コピーしてつくったためにこのような現象がおきてしまうのでしょうか? つたない説明になりましたが、もしわかるなら教えてください。 |
sino さん、こんにちは >こうちゃんさん、お答えありがとうございます。 >さっそく実行してみたのですが、やはり上手くいきません。 > >レポート印刷にいたるまでは、最初にも書きましたがメインフォームのテキストボックスに抽出条件を指定して、それをサブフォームに表示し、そのレコード印刷したい、ということです。 >実はそのメインフォーム、サブフォームともに3種類あります。 >仮にメインをM1、M2、M3、サブをS1、S2、S3とすると、まずM1にS1を組み込んで、抽出用のボックス、ボタン、さらにコードも書き込みました。 >それをコピーしてM2、M3をつくり、サブフォームをあとからS2、S3を組み込み直しました。コードもサブフォーム名やレポート名などを書き直しました。 > >その結果、M1は上手く作用するのですが、M2、M3ではサブフォームに表示する抽出は上手くいっても、実際に印刷プレヴューにかけたとき抽出されるのはM1の抽出レコードになってしまうのです。 >コピーしてつくったためにこのような現象がおきてしまうのでしょうか? >つたない説明になりましたが、もしわかるなら教えてください。 再現できません。上記のようにフォームをコピーして作成して実行しても、指定どおりにプレビューされてます。 条件の提示が不足していて、現象がわかりません。もう少し詳細に教えてください。 もとのテーブルは同じものですか? クエリを使っていて、クエリの抽出条件が"Forms!M1.txt日付"のようにM1の日付を固定的に参照していませんか? M1、M2、M3でプレビューするレポートは別物ですか? またそれを指定するコードの修正もれはありませんか? M1、M2、M3それぞれのプレビューを実行させるコードを提示できませんか? ためしに、コピーでなく新規にフォームをつくってみたらどうなりますか? >レポート印刷にいたるまでは、最初にも書きましたがメインフォームのテキストボックスに抽出条件を指定して、それをサブフォームに表示し、そのレコード印刷したい、ということです。 ここの意味がはっきりしません。 「メインフォームのテキストボックスの抽出条件でレポートを印刷する」でいいんでしょうか? それともサブフォームそのものを印刷するんですか? |
何度もお返事ありがとうございます。 >再現できません。上記のようにフォームをコピーして作成して実行しても、指定どおりにプレビューされてます。 >条件の提示が不足していて、現象がわかりません。もう少し詳細に教えてください。 >もとのテーブルは同じものですか? そうです。同じテーブル内の一会社で1つのレコードなのですが、その内容に種類1、2,3、があってそれぞれ個数を入力していきます。 それを各種類ごとにクエリを作って、0以上のものを抽出しています。 (会社名と種類1、会社名と種類2・・・となりそれぞれ>0という条件を入れています) >クエリを使っていて、クエリの抽出条件が"Forms!M1.txt日付"のようにM1の日付を固定的に参照していませんか? していません。 >M1、M2、M3でプレビューするレポートは別物ですか? >またそれを指定するコードの修正もれはありませんか? 別物ですが修正もれはないと思います。 >M1、M2、M3それぞれのプレビューを実行させるコードを提示できませんか? (M1) Private Sub コマンド6_Click() On Error GoTo Err_コマンド6_Click Dim Criteria As String Criteria = "総合判定日 Like '*" & Me!txt総合判定日 & "*'" DoCmd.OpenReport "工場本試験", acViewPreview, , Criteria Exit_コマンド6_Click: Exit Sub Err_コマンド6_Click: MsgBox Err.Description Resume Exit_コマンド6_Click End Sub (M2) Private Sub コマンド6_Click() On Error GoTo Err_コマンド6_Click Dim Criteria As String Criteria = "総合判定日 Like '*" & Me!txt総合判定日 & "*'" DoCmd.OpenReport "代替本試験", acViewPreview, , Criteria Exit_コマンド6_Click: Exit Sub Err_コマンド6_Click: MsgBox Err.Description Resume Exit_コマンド6_Click End Sub (M3) Private Sub コマンド6_Click() On Error GoTo Err_コマンド6_Click Dim Criteria As String Criteria = "総合判定日 Like '*" & Me!txt総合判定日 & "*'" DoCmd.OpenReport "現場追試験", acViewPreview, , Criteria Exit_コマンド6_Click: Exit Sub Err_コマンド6_Click: MsgBox Err.Description Resume Exit_コマンド6_Click End Sub >ためしに、コピーでなく新規にフォームをつくってみたらどうなりますか? してみましたが、やはりダメでした。M1の抽出結果になります。 >ここの意味がはっきりしません。 >「メインフォームのテキストボックスの抽出条件でレポートを印刷する」でいいんでしょうか? >それともサブフォームそのものを印刷するんですか? そうです。「メインフォームのテキストボックスの抽出条件でレポードを印刷する」ということです。 メールにも書きましたが実際に見てもらえると分かりやすいと思うのですが・・・。 何が悪いのかすでにお手上げ状態です。 お手数ばかりおかけしますが、おねがいします。 |
sino さん、こんにちは 完全には条件を理解しきれていないのですが、レポートのレコードソースくらいしか考えつきません。 なにを持って「M1の条件」と判断しているのですか? 各レポートの表題等は変えているのですか? レポートはそれぞれのものが開いたうえで、条件(日付)が正常に適用されないのですか? 各レポートの"開くとき/Report_Open"にブレークポイントを設定して、するかMsgBoxを表示する等して、それぞれのレポートが正常に呼ばれているかを確認してみてください。 |
こうちゃんさん、こんにちわ。 そしてありがとうございます。 原因が判明しました!! おっしゃる通り、レポートのレコードソースが間違ってました。 レポートもコピーして作ったもので・・・。 今思うとなんて単純な間違いだろう、と思いますが、一人で悩んでいるときは全然思いつきませんでした。 ホント助かりました。 深く深く御礼申し上げます。 |