dポイントプレゼントキャンペーン実施中!

VBA初心者です。レポート機能を使って履歴書を出力したいのですがうまく作れません。

内容は下記の通りです。

テーブルA(社員情報)<単票形式>:[社員コード]、[社員名]
テーブルB(履歴情報)<表形式>:[社員コード]、[西暦]、[履歴内容]

レポートA:テーブルAの全てのフィールドに連結
レポートB:レポートAのサブレポートとしてレポートA上に配置
  フィールドは全てテーブルBに連結

<やりたい事>
レポートAの[社員コード]とレポートB(サブ)の[社員コード]で連動させ、
レポートAの[社員コード]が変わると該当の履歴情報のみをレポートBに表示したい。

<現在の考え>
テーブルAに連結したフォームA上に配置したあるコマンドボタンをクリックし
表示中の[社員コード]でレポートAとレポートB(サブ)にフィルターをかけて抽出する。

Private Sub コマンドボタン_Click()

処理AReports("レポートA").Report.Filter = "社員コード = '" & Me!社員コード & "'"
Reports("レポートA").Report.FilterOn = True 

処理BReports("レポートA").レポートB.Report.Filter = "社員コード = '" & Me!社員コード & "'"
Reports("レポートA").レポートB.Report.FilterOn = True

結果  処理A--->抽出 ○ 処理B--->抽出 ×

その他レポートBに関しては上記処理Bを止め、「開く時」の処理として

Private Sub Report_Open(Cancel As Integer)

Me.Filter = "社員コード = '" & Parent("社員コード") & "'"

Me.Report.FilterOn = True

End Sub

「実行時エラー'2101';
プロパティの設定値として指定した値が正しくありません。」

と出て結果×でした。。

どなた様か解決案もしくは他に良い方法がありましたらご教授頂きたく宜しくお願い致します。

A 回答 (2件)

むむむ。


かなりピントはずれのレスをつけてしまったようでお詫びいたします。
ですが、当方ではレポートでも同様な事を行ってまして、問題は起きて無いのですけど。
レポートやフォームの話はチェックすべき要素が多いので解決が長引く事が多いです。
そこで
Akira 氏の所でご相談されては如何でしょう?
http://www.accessclub.jp/index.html
こちらでは
http://www.accessclub.jp/fileup/ss1_board/index. …
でサンプルファイルをアップロードできます。
(LZHかZIP圧縮で200KB以下)
その後で、適切と思われるフォーラムで質問されては?
サンプルには検証するためのダミーデータがちょこっと入っていたほうが
回答者としてはうれしいです。
また
バージョンに依存しますが
ツール → オプション → 全般タブで
保存時にファイルのプロパティから個人情報を削除するのチェックを入れてから保存し
再度開いて、ファイル →データベースプロパティ ファイルの概要で
作成者などの所が空白になっているのを確認されてからアップされた方が良い場合もあり。
厳しい方々が多いですが頼りになる人々でもあります。
私は優しいかも知れんが頼りにならない (^_^;)
あちらに投稿される際はこちらは閉じてからになさって下さいね!!!
    • good
    • 0
この回答へのお礼

またまたお返事が遅くなりまして申し訳ございません!
情報ありがとうございます。
頂きましたアドバイスを参考に頑張ってみます。
この度はお忙しいところご対応頂きましてありがとうございました。

お礼日時:2006/09/19 18:25

メインフォームとサブフォームを


それぞれ社員コードでリンクしてあればモジュールで処理しなくとも・・・と思います
サブフォームのプロパティのデータタブで設定されては?
    • good
    • 0
この回答へのお礼

こんばんわ。ご連絡が遅くなり申し訳ございません。

レポートではなく、フォーム上で上記のような処理を組むとメインフォーム、サブフォームとも社員コードで抽出がかかりリンクしてくれるのですが、これがレポートとサブレポートでやるとサブレポート側が社員コードでフィルタがかかってくれません(全て表示される)。。

お礼日時:2006/09/14 00:26

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

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