• 締切済み

ACCESS 指定レコードのレポート印刷

OKWaveでも他の方が質問していますが、同様な対応をしても、どうも正常動作しません。 内容:1.フォーム作成完了 → 2.レポート作成完了 → 3.現在フォームに表示されているレコードを(2)で作成したレポート形式で印刷(プレビュー)をしたい。 レポート名:看板 フォーム名:管理    フォーム画面上には ID を表示させています。 テーブル名:管理TBL 管理TBLには ID というフィールドはあります。 実施内容:下記内容を印刷コマンドボタンのイベントプロシジャーに記述。 Private Sub report_Click() Dim stDocName As String   DoCmd.OpenReport "看板", acViewPreview, , "[ID]=" & [Forms]![管理]![ID] End Sub 例えば、レコード3のフォーム上で上記内容のコマンドボタンをクリックすると、IDのパラメータのポップアップが表示され3を入力後、看板のレポートプレビューが表示されますが、固定データのみ表示されているレポートで当該レコードの内容が反映されたレポートが表示されません。 レコード1のフォーム上で実施したら、IDパラメータポップに1を入れると全レコードのレポートがプレビューされます。 どうしたら、カレントレコードの内容のみを反映したレポートをプレビューさせることができるのでしょうか、ご教授下さい。また IDパラメータポップアップも表示させたくありません。

みんなの回答

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

IDのパラメータ入力画面が表示される ということはレポートのレコードソースに IDというフィールドが無いために表示 されます。レポートのテキストボックスの 名前でも、フォームのテキストボックスの 名前でも、フォームのレコードソースの フィールドの名前でもありません。 >DoCmd.OpenReport "看板", acViewPreview, , "[ID]=" & [Forms]![管理]![ID] の >"[ID]=" & [Forms]![管理]![ID] について説明しますと、等号の左の[ID]のIDは レポートのレコードソースのフィールド名です。 レポートのレコードソースのフィールド名にID があるならば、式は成り立ちます。 レポートのテキストボックスの名前では ありません。つまり、IDという名前のテキストボックス が無くてもレポートにフィルタがかけられ、レポートには フォームで指定した[ID]のレコードが表示される ことになります。 レポートのレコードソースにIDではなく、IDに相当するものが 番号という名前のフィールド名ならば、 >"[ID]=" & [Forms]![管理]![ID] は、 >"[番号]=" & [Forms]![管理]![ID] のようにしないとパラメータが表示され、 それにたとえば、1と入力してもすべて のレコードが表示されることになります。 一度、レポートのレコードソースのフィールド名 を確認されてみたらいかがでしょうか。

mountfj
質問者

お礼

レポートソース側にIDがありませんでした。 フォーム側とレポート側で一致させるKeyがなった為、発生していたのですね。  レポート側に共通のKey(ID)を設定することで、レポート出力されました。 ありがとうございました。

  • layy
  • ベストアンサー率23% (292/1222)
回答No.2

基本的には、 画面に出たものとレポートと同じものを出したいという趣旨でしょうか?。 フォームのレコードソース と レポートのレコードソース は同じになっていますか?。 フォームでIDを入力しその分だけ出したい、なら レコードソースは共にクエリで、抽出条件もつけます。 例えば、 フォームですべてのレコード表示、 →ID入力 →クエリでそのID分だけで抽出し、フォームにそのID分のみで再表示 ということをしたいときは「再クエリ」という指示をします。 >IDパラメータポップアップも表示 これは実際のテーブルのフィールド名とコードの記述が違っていたりしたとき出ます。 半角全角を確認してみてはどうでしょう。 不明なときはいったん条件をはずして、 フォームで全件表示、そのままレポートにも全件表示できる形を確立してから、 抽出条件を付与します。 そうするとたとえ間違えても間違えた箇所が絞られるので比較的対処早いです。 今はどこでおかしくなったかわけわからないのかと思われます。

mountfj
質問者

お礼

フォームとレポートの共通Keyが一致してませんでした。 回答ありがとう御座います。

noname#192382
noname#192382
回答No.1

私は初心者ですが、・・・・・・・。レポートのもとになるのは、テーブルかクエリーです。だからクエリーでほしいデータを作ってから、レポートに渡すようにしてみたらどうですか。

mountfj
質問者

お礼

IDがレポートソースにありませんでした。 助言ありがとうございました。

関連するQ&A

専門家に質問してみよう