こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Accessで今記入されたデータ―をすぐにレポートで印刷したいのですが

よろしくお願いします。Win98でAccess2000を使用しています。
毎日提出する売上日報を作っていますが、パソコンに不慣れな人でも使えるようにしたいと思っています。
その日の売上データ―をフォームから記入し、クエリを通して集計や細かな計算をさせた物をレポート化することまでは出来ています。
ただ、フォーム上にコマンドボタンをつくり、それでマクロを実行させたいのですが、レポートを開かせて印刷まではできました。 ただ、最後の(つまり今、フォームに記入したばかりの)データ―をだけを印刷させたいのですが最後のデータを [Forms]![売上データ―]![ID]=[Reports]![売上日報]![ID] のようにIDでページ指定をすると、印刷されたレポート内のデータが白紙になります。 記入されたページを指定しないと、すべてのレポートが印刷されてしまいます。
今フォームに記入されたデータをフォーム上のコマンドボタンからレポートで印刷させるには、どのようにしたら良いのでしょうか?

投稿日時 - 2004-08-11 17:52:15

QNo.958733

暇なときに回答ください

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

エラーが出るという事ですが
VBEditorでデバッグしてみてください。スペルのエラー等ないでしょうか?
間違っているところが強調されますので確認してください。
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
です。

投稿日時 - 2004-08-19 14:26:01

ANo.3

>  [Forms]![売上データ―]![ID]=[Reports]![売上日報]![ID] 
レポートを開くアクションの、Where条件引数かな?

正しくは、
[フィールド名]=Forms![フォーム名]![コントロール名]
のように指定します。

あと、その前に、マクロならコマンドの実行アクションで、レコードの保存引数を
選んで、実行させてください。

投稿日時 - 2004-08-11 23:35:21

お礼

休みで、お返事が遅くなりました
ちょっと、具体的すぎて、解りません。
選んだデータ―のIDを同じにするように指定すれば出来るかと思ったのですが・・・最後の(最新の)データをフィールド名で指定する方法がわかりません。
 マクロで、フォームを保存して閉じさせて、そのあとテーブルやクエリを開かせて、更に最後のデータ―に移動させて、それと同じIDを条件式で開くようにしてからレポートを開かせてみたのですが、やっぱり白紙のレポートになってしまいました。理由も方法もわかりません。

投稿日時 - 2004-08-16 21:39:33

ANo.2

#1の方のいうようにフォーム上でデータを入力しただけではそのままレポートに出力できません。
そのデータをレコードとして保存しなければ出力できません。
ボタンからレポートを出力するマクロを実行させているならそのボタンのクリックイベントのプロシジャに1行付け加えればすぐレポートに出力できます。
そのボタンをCmd1として下記のようになっているはずです

Private Sub Cmd1_Click()
On Error GoTo Err_Cmd1_Click

DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
 'この1行を追加してください。コピペで大丈夫です。

Dim stDocName As String

stDocName = "マクロ名"  '実行させるマクロ
DoCmd.RunMacro stDocName

Exit_Cmd1_Click:
Exit Sub

Err_Cmd1_Click:
MsgBox Err.Description
Resume Exit_Cmd1_Click

End Sub

これで入力してすぐ出力できます。

投稿日時 - 2004-08-11 18:45:23

お礼

休みで、お返事が遅くなりました
DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
を書き込みましたが、式のエラーがでます。
どうしてでしょう?
頑張ってみます。

投稿日時 - 2004-08-16 21:32:25

ANo.1

入力が完了していない(テーブルに書き込まれていない)からだと思います。
フォームでテーブルのフィールドをどう扱っているか不明ですが、
非連結ならレコードセットのRequery、
連結ならMe.Requery
で大丈夫だと思います。
頑張ってくださいヽ(^。^)ノ

投稿日時 - 2004-08-11 18:05:54

お礼

休みで、お返事が遅くなりました。
やってみたのですが、駄目でした。どうしてでしょう?
頑張ってみます

投稿日時 - 2004-08-16 21:30:45

あなたにオススメの質問