Access2003のレポートについて教えてください。

my_table,my_form,my_reportが登場します。

・my_formフォームにボタンを設置。クリックすると、「my_report」というレポートを呼び出す。

Private Sub cmd_Execute_Click()
DoCmd.OpenReport my_report, acViewPreview

・my_reportにはVBAでレコードセット取得コードが書かれています。r_ID,r_Nameはレポート上に配置されているテキストボックスです。

Private Sub 詳細_Format(Cancel As Integer, FormatCount As Integer)
SQL_Str = "SELECT * from my_table where ID Between 0 and 100"
Set RS = db.OpenRecordset(SQL_Str, dbOpenDynaset)

Do Until RS.EOF
r_ID = RS!ID
r_Name = RS!Name
RS.MoveNext
Loop

何がやりたいかというと、レコードセットを作成。例えば100人分のレコードセットができたとします。100人の名前が印刷できるようなレポートを作りたいです。上記のコードだと、r_ID,r_Nameは上書きされて最後のレコードが印刷されるだけです。コードをどうやって変えたらよいでしょうか?アドバイスお願いします!

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2010/03/09 14:17:21
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:HALSPECIAL No.2

回答回数407ベストアンサー獲得回数86

ポイント70pt

アクセスをアクセスらしくスマートに使うにはバインドを使用することです。

デザインのビューから「レコードソース」にテーブルやクエリ、SQLをセットしてレポートとバインドします。


で、必要に応じ、

DoCmd.OpenReport の引数で抽出条件を指定するとよいです。

http://www.happy2-island.com/access/gogo03/capter60005.shtml



どうしても、レポートのモジュールでコードを書きたいということであれば、こちらにあるように

Report_Openイベントでレコードセットを作って、Me.RecordSourceにセットします。

http://www.accessclub.jp/bbs6/0005/das991.html

id:akaired

ありがとうございます!!

2010/03/09 14:16:45

その他の回答1件)

id:takejin No.1

回答回数1543ベストアンサー獲得回数203

レポートにテーブルを持ってきておく。

ボタンを押したら、そのテーブルにレコードセットを書き込む。

全部書き込んだら、レポートを印刷すればいいんではないの?

id:akaired

ありがとうございます!

2010/03/09 14:16:52
id:HALSPECIAL No.2

回答回数407ベストアンサー獲得回数86ここでベストアンサー

ポイント70pt

アクセスをアクセスらしくスマートに使うにはバインドを使用することです。

デザインのビューから「レコードソース」にテーブルやクエリ、SQLをセットしてレポートとバインドします。


で、必要に応じ、

DoCmd.OpenReport の引数で抽出条件を指定するとよいです。

http://www.happy2-island.com/access/gogo03/capter60005.shtml



どうしても、レポートのモジュールでコードを書きたいということであれば、こちらにあるように

Report_Openイベントでレコードセットを作って、Me.RecordSourceにセットします。

http://www.accessclub.jp/bbs6/0005/das991.html

id:akaired

ありがとうございます!!

2010/03/09 14:16:45

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません