ついに夏本番!さぁ、家族でキャンプに行くぞ! >>

条件抽出したフォームを印刷プレビューしたいのですが、プレビューすると
全データが表示されてしまいます。
出来ればフォームのままプレビューしたいのですが、この場合は、
別にレポートを作成しないとダメでしょうか?

1.メインフォームにサブフォームを組み込んであります。
2.サブフォームはクエリに関連させています。
3.コマンドボタン[印刷]で印刷プレビューを表示させたい。

メインフォーム:商品
サブフォーム:取引商品
クエリ:商品リスト


-----コマンド[印刷]のイベント-----
Private Sub cmdPrint_Click()
'商品取引記録を印刷プレビューで開く
DoCmd.OpenForm "商品", acViewPreview, Me.Filter
End Sub

このQ&Aに関連する最新のQ&A

A 回答 (3件)

#1です



動作検証はしてなかったのですが・・・

> DoCmd.OpenForm "商品", acViewPreview, , Me.Filter
> としても、全データの表示がされてします・・・。

DoCmd.OpenForm Me.Name, acPreview

だけで、行けるね・・・
acViewPreviewと、 acPreviewは、結果、同じ値みたいだけど、バージョンの違いなのかな?
    • good
    • 0

私の例で、社員3というテーブルがあります。


地区」フィールドがあり、関東や東北・・が入っています。
フォームの 社員3はデータシート形式で既に作ってあります。
モジュールに
Sub test04()
DoCmd.OpenForm "社員3", acViewPreview, , "地区='関東'"
End Sub
をつくり、実行すると、関東のレコードを印刷プレビューで表示しました。
メイン・サブに分かれていると、上記では」うまく行かないかもしれませんが、とりあえず。
関連記事
http://www.accessclub.jp/bbs2/0055/beginter17725 …
Googleで「サブフォーム Filter」で照会を勧めます。
    • good
    • 0

なにか、変じゃない?



> DoCmd.OpenForm "商品", acViewPreview, Me.Filter

OpenForm マクロ アクション
http://office.microsoft.com/ja-jp/access/HA01226 …

と、
> ['(フィールド名)'] = Forms!['(フォーム名)']!['(別のフォームのコントロール名)']
等と設定するのは、第4引数、Where Condition/Where 条件式

ですので、
DoCmd.OpenForm Me.Name, acViewPreview, , Me.Filter
って、事じゃないの?

この回答への補足

>DoCmd.OpenForm Me.Name, acViewPreview, , Me.Filter
>って、事じゃないの?

DoCmd.OpenForm "商品", acViewPreview, , Me.Filter
としても、全データの表示がされてします・・・。

補足日時:2009/05/22 16:05
    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QACCESS フォームで抽出したデータのみをレポートで表示したい

初歩的な質問だとは思いますが、どうしてもできないので教えてください。

フォームで抽出条件をメインフォーム抽出結果をサブフォームに表示するフォームを作成しました。
このサブフォームで抽出したものだけをボタンをクリックするとレポート表示するように作りたいのですができません。

どうすればいいでしょうか?

Aベストアンサー

>レポートのプレビューで出力ボタンを作成したのですが、全てのデータが表示されます。
レポートのプレビューで出力ボタンを作成??意味が不明ですが。
>抽出条件を入力しても同じです。
レポートのレコードソースは抽出条件が入っているのでしょうか?抽出条件がなければ全レコード出力されてしまいます。
抽出条件はどのように入れてあるのでしょうか。
レポートのプロパティでレコードソースの右のボタンをクリックするとSQLステートメントが開きますので抽出条件のフィールドの抽出条件に
=[Forms]![メインフォーム名]![抽出条件のコントロール名]
と記述してください。(メインフォーム名・抽出条件のコントロール名は実際の名前に変えてください)
メインフォームにレポートを出力するボタンを作りそのレポートを設定すれば出来ます。

QACCESSで、フォームで抽出したものをレポートで印刷したいのですが・・・

現在、フォームでオプショングループを作成し、そこで選択されたものがフォーム上に表示(抽出)されるマクロを設定しています。今度ここで表示されたものをレポートにて印刷するために、またマクロを作ったのですが、エラーとなっていまい、レポートも表示されません。
そのマクロは、
アクションを「値の代入」
アイテムを「[Reports]![成績表].[FilterOn]」
式を「True」
とし、
2行目に
アクションを「値の代入」
アイテムを[Reports]![成績表].[Filter]
式を[Forms]![成績表].[Filter]
としました。

これはあるテキストに載ってたとおりにしたのですができませんでした。
どのようにすればよいのか教えてください。よろしくお願いします。

Aベストアンサー

> この方法はどのような場合にも通用するのでしょうか?
> とても便利なので感動したのですが。

どのような場合でもってわけじゃないですね。

フォームのフィルタプロパティを、レポートに渡していますので、
前提条件として、

○フォームとレポートのレコードソースが同一である
○フォームでフィルタプロパティを使っている
となります。

その条件であれば、使用することはできるはずです。

QACCESS フォームをそのまま印刷について

お世話になります。
ACCESSのフォームを印刷する方法ってどうすればいいのでしょうか?レポートは使いたくなくて・・・・
ボタンをクリックしたらボタンを非表示にして印刷させたいのですが、やり方がわかりません。
また、印刷プレビューを表示させるボタンも作りたいのですが・・・

よろしくお願いいたします。

Aベストアンサー

>ACCESSのフォームを印刷する方法ってどうすればいいのでしょうか?
普通に[ファイル][印刷]とすれば印刷できます
どのような形で印刷されるかは印刷プレビューで確認できます

>ボタンをクリックしたらボタンを非表示にして印刷させたいのですが
VBAなら印刷はPrintformメソッドです
印刷時非表示はDisplayWhenプロパティーで設定できます

>印刷プレビューを表示させるボタンも作りたいのですが・・・
プレビューはレポートにしかないようですね
フォームは表示されているんですよね、だったら要らないのでは

>レポートは使いたくなくて・・・・
フォームと同じフォーマットのレポートなら
右クリック、名前をつけて保存でレポートを選ぶだけで簡単に作れますよ

Qアクセスで特定のレコードのみのレポートを印刷したいのですが。

アクセス2003である特定のレコードのみのレポートを印刷したいと思っています。現在開いているフォームのレコードのみを印刷(レポートとして)印刷するには、ファイル→印刷→ページ指定で現在印刷しているのですが、他に方法はないでしょうか?単に「レポートの印刷」とすると全てのレコードが印刷されてしまいます。今のところ特定のレコードのみ印刷するには、まずページ数を調べなければいけないので不便です。せっかくパラメータクエリなどで、そのレコードのフォーム画面を表示させても、レポート印刷につながらないので、どなたか良い方法を教えていただけないでしょうか?よろしくお願いいたします。

Aベストアンサー

レポートの基となるクエリを開きます。
フォームに表示されている項目の中で主キーとなるフィールドがどれかを決めます。
そのクエリの中でその主キーフィールドのWHERE条件の欄を選択してビルドを開きます。
レポートを選択するフォームの一覧を開きます。
先ほど選んだ主キーの項目を選んでダブルクリックします。
Ok
そうすれば、フォームから印刷ボタンを押せば開いているページだけが印刷されます。
但し、複数ページの指定をするには、更に複雑な設定が必要ですが、
今の照会した方法を応用すればできるはずです。

QACCESSで表示されているフォームだけをレポートに出したい

アクセスで、入力したフォーム内容をすぐにレポートで印刷できるよう、コマンドボタン作成ウィザードで、レポートの操作→レポートのプレビューを行ったのですが、IDが1のものが表示されてしまいます。。
これを、表示されているフォームIDのものをプレビューさせることはできますでしょうか?

色々調べてみたのですが、分からなかったので。。
宜しくお願いします!

Aベストアンサー

> 色々調べてみたのですが、分からなかったので
調べ方が良くなかったのでしょうね
ウィザードで作成すると
Private Sub コマンド61_Click()
On Error GoTo Err_コマンド61_Click

Dim stDocName As String

stDocName = "フォーム名"
DoCmd.OpenReport stDocName, acPreview

Exit_コマンド61_Click:
Exit Sub

Err_コマンド61_Click:
MsgBox err.Description
Resume Exit_コマンド61_Click

End Sub
こんなコードが出来ていると思います。
それぞれの単語の上にカーソルを持っていって、F1 キーを押すとそれぞれのヘルプが
現れます。
でAccess2002の場合ですが、OpenReportのヘルプで
WhereCondition で何かを指定すると何とかなりそうなのが分かります。
関連項目を見ると「"OpenReport/レポートを開く" アクション」が有ります。
ここに貴方の望むものが載っています。
ヘルプより抜粋
-------------------------
レポートを開き、レポートのコントロールの値を使ってレコードを制限するには、次の構文を使用します。

['(フィールド名)'] = Forms!['(フォーム名)']!['(フォームのコントロール名)']

'(フィールド名)' には、開くレポートの基になるテーブルまたはクエリにあるフィールド名を指定します。
<フォームのコントロール名> には、レポートのレコードを制限するための値を持つ、フォームのコントロール名を指定します。
--------------------------
なので
DoCmd.OpenReport stDocName, acPreview

DoCmd.OpenReport stDocName, acPreview, , "[ID]=" & Forms![フォーム名]![ID]
にすれば良いのが分かるかと思います。なお、下記の書き方もあります
DoCmd.OpenReport stDocName, acPreview, , "[ID]=" & Me!ID

> 色々調べてみたのですが、分からなかったので
調べ方が良くなかったのでしょうね
ウィザードで作成すると
Private Sub コマンド61_Click()
On Error GoTo Err_コマンド61_Click

Dim stDocName As String

stDocName = "フォーム名"
DoCmd.OpenReport stDocName, acPreview

Exit_コマンド61_Click:
Exit Sub

Err_コマンド61_Click:
MsgBox err.Description
Resume Exit_コマンド61_Click

End Sub
こんなコードが出来ていると思います。
それぞれの単語の上...続きを読む

QAccessのレポート機能でソート&抽出条件を指定したい

accessでレポート機能について、質問です。
エクセルでいうフィルタ機能みたいなものはあるのでしょうか。

例えば、以下の場合、職位="B"だけレポートで表示したい場合、
どうすればよいのでしょう?
CD 職位 所属
01  A  東京
02  B  東京 → このデータだけを表示
03  A  大阪

1)クエリを作って、レポートで表示するしかないのでしょうか?
2)レポートのデザインで条件指定ができるのでしょうか?

ソートの条件も変えたいのですが、どの項目をソートするかは、
どこで指定できるのでしょうか?

要はレポートの形式は1つで、様々な抽出条件とソート条件で
レポート表示したいのです。

Aベストアンサー

>1)クエリを作って、レポートで表示するしかないのでしょうか?
>2)レポートのデザインで条件指定ができるのでしょうか?
レポートのデザインで、レポートのフィルタプロパティで、職位="B"として、フィルタ適用を"はい"にすると言う方法もあります。

>ソートの条件も変えたいのですが、どの項目をソートするかは、
>どこで指定できるのでしょうか?
レポートのデザインの「並べ替え/グループ化の設定」で行います。

>要はレポートの形式は1つで、様々な抽出条件とソート条件で
>レポート表示したいのです。
1つレポートの雛形を作って、フィルタと並べ替えのプロパティと並べ替え/グループ化の設定を変えて保存し、複数のレポートを用意する。
入力した値によって変えたい場合は、フォーム上のテキストボックスの値や特定テーブルのレコードの値にを参照するクエリを作り、レポートのレコードソースにする。
またはVBAで処理する。

p.s.
レポートの表示をボタンで起動する場合、VBAやマクロを呼び出します。
VBAやマクロでレポートを開く時に、フィルタやWhere条件式を設定できます。

>1)クエリを作って、レポートで表示するしかないのでしょうか?
>2)レポートのデザインで条件指定ができるのでしょうか?
レポートのデザインで、レポートのフィルタプロパティで、職位="B"として、フィルタ適用を"はい"にすると言う方法もあります。

>ソートの条件も変えたいのですが、どの項目をソートするかは、
>どこで指定できるのでしょうか?
レポートのデザインの「並べ替え/グループ化の設定」で行います。

>要はレポートの形式は1つで、様々な抽出条件とソート条件で
>レポート表示した...続きを読む

QAccessのRefresh・Requery・Repaintの違い

Requeryはもう一度ソースレコード(テーブル)を読み込むようです。このとき、テーブルの先頭レコードに移動してしまいます。
Refreshは最新のレコード(テーブル)を再表示するような気がします。レコードの移動は起こらない気がします。
Repaintは、VBAでキャプションなどを変更したとき使っています。
でも、よくわかっていません。
どんなときにどんなメソッドを使えばいいのでしょうか?
詳しい方、よろしくお願いいたします。

Aベストアンサー

たびたびすみません。
調べてたらこんなのがでてきました。
http://www.nurs.or.jp/~ppoy/access/access/acF007.html

参考URL:http://www.nurs.or.jp/~ppoy/access/access/acF007.html

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

いつも大変お世話になっております。m(_ _)m

Accessのフォームにて、データを入力します。
入力している画面に「印刷」というボタンを作り、入力し終わった情報をレポート印刷(出力)したいです。

フォームもレポートも作成済みです。
データの区分けとしては、「管理No.」というフィールドが主キーであります。「現在画面に表示されているデータ」とは、「現在画面に表示されているデータの管理No.」ということになります。
その管理No.を抽出条件とし、印刷を行いたいです。

ごく簡単な方法で教えてほしいと思います。

なんとなく想像からすると、クエリを作り、抽出条件にその時の画面の管理No.を取り込む・・・というか・・・そんなイメージはありますが、どうすればいいのか分かりません。

よろしくお願い致します。m(_ _)m

Aベストアンサー

#3さんの仰るとおり、入力直後(保存前)に印刷ボタンを押すと入力中の内容は反映されませんね。忘れていました。
プログラムを修正します。

Private Sub コマンド1_Click()
 Me.Refresh
 If IsNull(Me![管理No.]) = False Then
  DoCmd.OpenReport "レポート名", acViewNormal, , "[管理No.]=" & Me![管理No.]
 End If
End Sub

QACCESS でフォームフィルターをレポートに引き継ぐ方法

こんにちは。
いつもありがとうございます。

現在、ACCESSで名簿管理ソフトを作っています。
フォームで条件を指定し、該当する人を抽出できるようになっているのですが、その条件をそのままレポートのソースに使用するにはどうれすばいいでしょうか?

DoCmd.OpenReport "rpt_名簿", acViewPreview,, Me.Filter
としているのですが、実行時エラー 438が出てしまいます。

Aベストアンサー

発想を変えましょう
レポートの開くときイベントでフォームのフィルタを引き継げばいいのです

Private Sub Report_Open(Cancel As Integer)
Me.Filter = Forms![フォーム名].Filter
Me.FilterOn = True
End Sub

QACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ

ACCESSで空白のデーターをクエリで判定/識別する方法を教えてください。
EXCELでは空白を""で判定/識別表していますがACCESSではどうなるのでしょうか。

下の例はフィールドに試験番号があればその番号を、空白なら”欠席”と表示しようとしています。
IIf(([試験番号]="空白の場合何を入れる?"),[試験番号],"欠席")

Aベストアンサー

もうひとつの書き方は
式1: IIf([試験番号] Is Not Null,[試験番号],"欠席")
第2、第3引数の、質問の順序にあわせるとこうなる。


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング