プロが教えるわが家の防犯対策術!

住所ラベルを必要分だけデータ型yes/no形式でチェックを入れ、レポートで印刷と思っています。
打ち出し方としては、フォーム上にデータとして住所・氏名・チェックと並んでおり、コマンドボタンで「印刷」を設定し、ほぼ上手くいきました。

しかしフォームを一度閉じて印刷しないと全てのチェックが反映されません。
10人中1~5をチェックし、印刷しても4までしか印刷されず、一度閉じてレポートから直接印刷すると5まで反映されている状態です。

フォームを閉じなくても5まで印刷する方法は無いでしょうか。
なにぶん初心者につき、説明の表現が適切ではないかもしれませんが宜しくお願いいたします。

A 回答 (1件)

<改善前>


Private Sub コマンド10_Click()
On Error Resume Next
  DoCmd.OpenReport "tab1 クエリ", acPreview
End Sub

<改善後>
Private Sub コマンド10_Click()
On Error Resume Next
  DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70
  DoCmd.OpenReport "tab1 クエリ", acPreview
End Sub

{Shift}{Enter}を押せば、フォームとレポートとが一致すると思います。
同じ効果を得るには、{Shift}{Enter}同様にレコードを保存するコードを付加すればいいです。
これで、最後に押したチェックボタンのみが反映されないという不具合は回避されます。

この回答への補足

ご解答ありがとうございます。
なにぶん初心者で、まだまだ分からないことが多く、上記のご解答くださったものを、下記のどの部分に挿入していいか分かりません・・・。
お手数ですが教えていただけないでしょうか。
よろしくお願いします。


Private Sub cmd住所ラベル印刷対象者_Click()
On Error GoTo Err_cmd住所ラベル印刷対象者_Click

Dim stDocName As String

stDocName = ChrW(12521) & ChrW(12505) & ChrW(12523) & ChrW(32) & ChrW(20303) & ChrW(25152) & ChrW(12521) & ChrW(12505) & ChrW(12523) & ChrW(20316) & ChrW(25104) & ChrW(23550) & ChrW(-29599) & ChrW(-32763)
DoCmd.OpenReport stDocName, acNormal

Exit_cmd住所ラベル印刷対象者_Click:
Exit Sub

Err_cmd住所ラベル印刷対象者_Click:
MsgBox Err.Description
Resume Exit_cmd住所ラベル印刷対象者_Click

補足日時:2007/09/21 15:10
    • good
    • 0
この回答へのお礼

すみません、できました。
印刷をするコマンドボタンではなく、プレビューのコマンドボタンに上記を挿入してできました。
ありがとうございました。

お礼日時:2007/09/21 16:40

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