• ベストアンサー

Accessのフォームで、画面表示されているものを印刷する

いつも大変お世話になっております。m(_ _)m Accessのフォームにて、データを入力します。 入力している画面に「印刷」というボタンを作り、入力し終わった情報をレポート印刷(出力)したいです。 フォームもレポートも作成済みです。 データの区分けとしては、「管理No.」というフィールドが主キーであります。「現在画面に表示されているデータ」とは、「現在画面に表示されているデータの管理No.」ということになります。 その管理No.を抽出条件とし、印刷を行いたいです。 ごく簡単な方法で教えてほしいと思います。 なんとなく想像からすると、クエリを作り、抽出条件にその時の画面の管理No.を取り込む・・・というか・・・そんなイメージはありますが、どうすればいいのか分かりません。 よろしくお願い致します。m(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.4

#3さんの仰るとおり、入力直後(保存前)に印刷ボタンを押すと入力中の内容は反映されませんね。忘れていました。 プログラムを修正します。 Private Sub コマンド1_Click()  Me.Refresh  If IsNull(Me![管理No.]) = False Then   DoCmd.OpenReport "レポート名", acViewNormal, , "[管理No.]=" & Me![管理No.]  End If End Sub

xchoxcho
質問者

お礼

何度もご丁寧にありがとうございました。 無事、解決できました。 本当にありがとうございました!

その他の回答 (3)

noname#22222
noname#22222
回答No.3

WhereCondition と呼ばれる引数を利用します。 Private Sub コマンドXXXX_Click() On Error Resume Next   If Nz(Me.管理番号) > 0 Then     DoCmd.OpenReport "XXXX", acXXXXX, , "管理番号=" & Me.管理番号   Else     MsgBox "入力未了にて印刷できません。", _         vbExclamation, _         " 処理中断のお知らせ"   End If End Sub 注意事項としては、フォームに入力しただけでは入力データの保存・登録が完了していません。 その対策は、上記コードでは行っていません。

xchoxcho
質問者

お礼

ありがとうございます。うまく印刷できました。 とても感謝しています。

  • venzou
  • ベストアンサー率71% (311/435)
回答No.2

#1です。 説明不足でした。 フォームの印刷ボタンのクリック時のイベントプロシージャに#1のソースを記述してください。 レポートはそのままで、変更しなくて結構です。(全レコード印刷される状態で大丈夫です。) フォームのボタンを押した時に、特定のレコードを指定してレポートを印刷することが出来ます。

xchoxcho
質問者

お礼

何度も回答ありがとうございます。 できました!!!すばらしく!!!簡単に!!!!! 本当に本当に本当にありがとうございました!!!!

  • venzou
  • ベストアンサー率71% (311/435)
回答No.1

レポート印刷時に条件を設定できます。 OpenReportメソッドの4つ目の引数です。 例: Private Sub コマンド1_Click()  If IsNull(Me![管理No.]) = False Then   DoCmd.OpenReport "レポート名", acViewNormal, , "[管理No.]=" & Me![管理No.]  End If End Sub

xchoxcho
質問者

お礼

さっそくのお返事ありがとうございます。 レポートの「開くとき」の「イベントプロシージャ」の中に↑を記述すればいいのでしょうか? すみません。やってみましたが、うまくいきません。 マクロなどを使って、ボタンに「レポートを開く」というような動作を割り当てるわけですよね?(きっと)その時、レポートに↑を記述して管理No.で印刷されるように制御するということでしょうか? お手数おかけします。よろしくお願いします。m(_ _)m

関連するQ&A

  • access2010のレポート印刷について質問です

    選択クエリにて日付で抽出しています。 選択クエリを実行すると、パラメーターの入力画面が表示され、日付を入力すると抽出されます。 その選択クエリをそのままレポートとしてあります。 そのレポートを印刷するにあたり、現在の流れは、フォームの印刷ボタンを押す→パラメーターの入力→レポート表示→ファイルタブから印刷を選択→印刷をクリック→プリンター選択等のプロパティー画面→印刷となっていますが、この手順を、フォームの印刷ボタンを押す→パラメーターの入力→プリンター選択等のプロパティー画面→印刷としたいのですが。 分かる方、是非教えて下さい。 宜しくお願いします。

  • ACCESS のフォームの内容をクエリーの抽出条件にするには?

    Windows2000,Access2000です。 Accessのクエリーでデータを選択して表示する作業をしています。 現在はクエリーを自分で修正して実行しています。 でもそれではみんなで使うには使いづらいので、 フォームを作成しそのフォーム上の入力項目に入力された データをクエリーの抽出条件に指定する様にしようという事になりました。 フォーム上の入力フィールドの内容をクエリーの抽出条件に設定する方法はすぐわかりました。 でも「like」を指定する方法がわかりません。 つまりフォーム上の入力データを“xxx”とした時、クエリーの抽出条件を 「like "*xxx*"」としてクエリーを実行したいのです。 つたない文章でわかりにくいかと思いますが、ご存じの方おりましたら、 よろしくご教示ください。

  • 【Access2000】レコードの抽出方法

     Access2000を使用してデータベースを作成していますが、抽出条件でつまずいています。  具体的には、  【1】選択クエリーAを基に作成したフォームA(単票形式でレコードを1件ずつ表示)があります。  【2】フォームAの中に単票形式でレポートを出力するマクロボタンが有。  【3】現在はマクロボタンを押すとパラメータで「データNo.?」と入力してもらう形になってレコードを1件抽出する形になっています。    ※画面上に表示されている「データNo.」フィールドの数値を入力してもらう形です。  質問についてですが、今のところはパラメータを入力してもらいレコードを抽出→レポートを出力していますが、パラメータを使わず、現在、フォーム上に表示されているレコード(表示されている1件)を抽出する方法はないかと壁にぶち当たっています。  言い換えれば、レポートを出力する際の元になるクエリの抽出条件で「現在、表示されているレコード」をどのように記述すればいいか、もし御存知の方がいらっしゃいましたら御教示お願いいたします。

  • アクセスレポートの抽出表示

    アクセス初心者です。よろしくお願いします。 現在3つのテーブルデータをクエリで結合し、レポートに表示させています。(フォームは使ったことがありません) 内容をレポートで確認したりしたいのですが、その都度クエリで社員番号を抽出条件に入力し、レポートを表示させているのですが、社員番号を入力すると該当のレポートを表示させる方法は何かないでしょうか?

  • Accessで月ごとのレポートを出したい

    Access2003で以下のような販売管理のデータベースを作成しているのですがクエリとレポートが思うように動いてくれずに困っております。 売上の管理のために顧客情報をメインフォームに明細をサブフォームで作成、明細テーブルからクエリで該当月を抜きだして請求書の印刷に使いたいと思っています。 レポートはフォームと同じようにメインレポートに顧客情報を表示してサブレポートとしてその月に販売した商品を一覧させたものを考えています。 サブレポートには明細のクエリを指定しています。そこでクエリの抽出条件に[月]としてキーボードから数字を入れるようにしたのですがそうするとレポートの印刷時にも顧客の数だけ月の入力を促す画面が出てきます。イメージとして「何月分の請求書を出しますか」みたいな画面(フォーム?)に数字を入力するとクエリの抽出条件が書き換わってくれるようにできないかと考えております。 うまく説明できていないと思いますが対処法をご存知の方おられましたらご教示お願いします。 他に情報が必要であれば言ってください。よろしくお願いします

  • Access、選択して印刷したい場合

     こんにちは、長い質問ですみません。どなたかご教授お願いします。  今、作成したいのはテーブルAに1000件以上の顧客データ(重複ないです)があり、その中から1件だけ選択し、フォームB上に作成したコマンドボタンのクリックで、その顧客データの情報だけをA4サイズ全てを使用して印刷出力したいのです。  レポートの詳細にテーブルAのフィールド項目を反映させると、1件だけではなく、A4サイズに許す限り次のデータが反映されてしまいます。  作業の順番を下記のように私なりに考えて進めていますが、どこがおかしいでしょうか? (1)テーブルAと連結する検索クエリCを作成し、抽出条件にLike[顧客コード]&"*" (2)フォームBのコントロールソースをクエリCに設定 →初期画面をフォームBにし、フォームBを立ち上げると同時にパラメータの入力画面が出て、そこに顧客コードを入力すると顧客情報がフォームB上に表示されます。 (3)テーブルAをコントロールソースにしたレポートを作成する。詳細にテーブルAのフィールド項目を入力。 (4)印刷マクロを作成し、マクロのアクションを「レポートを開く」にし、ビューを印刷にする。 (5)フォームBに印刷コマンドを作成し、イベントを印刷マクロにする。 (6)フォームBより印刷コマンドをクリックして、印刷開始する。

  • アクセス2003でレポート印刷について。

    いつもいつもお世話になっています。 アクセス2003で月間の抽出結果一覧がある帳票フォーム(選択クエリがレコードソースです)があり、印刷ボタンでその一覧のレポートを印刷したいと考えています。 そのフォームを開く時に、抽出条件として西暦と月を入力するのですが、そのレポート(同じ選択クエリがレコードソース)を印刷するときも再度西暦と月を指定しなければいけません。この年、月の入力を一度ですませるにはどのようにしたらよいでしょうか? どなたかよろしくお願いいたします。

  • ACCESS2000でクエリで抽出したレコードをフォームに表示するには

    A顧客テーブルで作成したフォームからコマンドボタン(電話番号検索)押下時に 電話番号入力画面が出て入力した電話番号とマッチした顧客レコードをフォームに 表示させたいのですが上手く出来ません。 現在進めている方法では何がダメなんでしょうか(以下は考え方) A顧客テーブルから作成したフォムに電話番号コマンドを作成してコマンドを 押すとクエリの実行をさせる。クエリはA顧客テーブルのフィールドを全て選択して抽出条件に[電話番号入力]としている。 (結果) ・フォームを開くと先に電話番号入力が出てくる、先にフォームが開かない。 ・電話番号検索コマンドボタンを押すと抽出条件に合ったレコードはデーターシートビューに表示される。 よろしくお願いします

  • Access2010 更新データのレポート表示

    Access初心者です。 新規データを入力しても、レポートが更新されずに困っています。 (テーブルや、フォーム内では、データは更新されています) エクセルデータをAccess2010にインポートして、元テーブルを作成しました。 元テーブルを元に、フォーム・レポート・検索クエリ(年度別・分類別)等を作成しました。 ここまでの作業で、新規データの入力はありませんでした。 ところが・・・ 新規データをフォームに入力すると、元テーブルは更新されますが、既に作成しているレポートには、新規レコードが表示(反映)されません。 更新されている元テーブルを元に、もう一度レポートを作成しても、新規レコードは表示されません。 ホームタブの「全て更新」ボタンをクリックしても、新規レコードはレポートには表示されません。 尚、Access初心者です。 「更新クエリ」なるものは、作成していません。というか、「更新クエリ」って何?状態です。 また、クエリそのものが良くわかっておらず、作成したクエリは全て「検索」のためのクエリで、抽出条件に「 [] 」を入力したり、フィールドに「 年度: Year(DateAdd("m",-3,[発送日])) 」を入力したりしかできません。 勿論、リレーションシップって何???状態です。 どうしたらよいのでしょうか??? どなたか、初心者でもわかるように、教えていただけないでしょうか? 宜しくお願いいたします。

  • アクセスのレポート印刷時にフォームを使ってデータ抽出がうまくいきません

    アクセスで簡単な生産管理を行おうと思っています。 生産した商品の数量などが生産した日付別にデータ として入力してあります。レポートのもとになるクエリー を作って、(集計クエリー) レポートを開くときにマクロを使ってフォームを開き、 そこで、商品CDの指定と日付範囲の指定をしています。 最初は、マクロでアクション「レポートを開く」の WHERE条件式で[商品CD]=FROMS![印刷フォーム]![商品CD] でうまく商品CDの指定はできたのですが、日付範囲はどうマクロを 組んでやればよいのかわかりません。WHERE条件式を入力するところは 一箇所しかありませんので、マクロでもうひとつアクション 「レポートを開く」のWHERE条件式で [年月日]between Forms![印刷フォーム]![開始日] and Forms![印刷フォーム]![終了日]と入力しましたがうまくゆきません。 どうすればよいでしょうか?初心者でよくわかりません。

専門家に質問してみよう