- ベストアンサー
Access2003
Access2003で顧客名簿を作っています。 入会者をフォームで登録し そのままボタンで初回カルテを印刷するようにしました。 この時、申込コースによって レポートを変える方法を教えてください。 (ボタンをたくさん作る方法しかできませんでした(-_-;)) また、あるコースは レポートの書式は同じで、通う回数が4種類から選べるのですが フォームから数値を拾ってレポートの行数を変える方法などもあれば教えていただきたいです。 分かりづらい説明でごめんなさい。 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ご質問者がどのレベルかわかりませんが、基本的にはVBAを使う形を取らないとできないでしょう。 画面でコース選択するところをどのように作るかによっても変わってきますので具体的な内容は明示しませんが、VBAが全くわからないようでしたらそのままボタンをたくさん作っておくぐらいしかできないと思います。 私が作るなら、 1.まずコースを選択するコンボボックスを作ります。 2.通う回数が複数あるコースを選択したときに回数を選ぶコンボボックスを作ります。 3.1のコース選択するコンボボックスの設定は2列にし、データ格納は1列目として1列目に数字、2列目にコース名を表示させます(1列目は表示させないように、列幅は0cmに設定しておいて方が良いかもしれません)。 4.1のコンボボックスで通う回数が複数あるコースは4番目にしておきます。 5.1のコンボボックスで4の値が選択がされたときに、2の「回数を選ぶコンボボックス」を可視できるようにします。2のコンボボックスはデフォルト時は可視を「いいえ」にしておき、4番目以外が選択されたときも可視を「いいえ」に変えるようにし、4の値が選ばれたときに表示させます。(この辺りは更新後のプロシージャにVBAで記述します) 6.印刷ボタンではVBAのプロシージャに「SelectCase文」などを使って1のコンボボックスの値と、2のコンボボックスの値の組み合わせで、印刷に利用するレポートを切り替えます。 以上のようなことをどのようにVBAで記述するかはご質問者が勉強するしかありません。
その他の回答 (1)
顧客名簿: ID__入会年月日__顧客名_____選択コース 01__2007/10/01__鈴木 一郎___________1 02__2007/10/02__中村 主水___________2 01__2007/10/01__鈴木 一郎__初級コース <--- 翻訳表示することも可 02__2007/10/02__中村 主水__中級コース 一応、選択コースは1,2,3,4 の整数とします。 上のように翻訳表示することも可ですので問題ないと思います。 Private Sub コマンド_コースレポートプレビュー_Click() On Error Resume Next If Len(Me.コンボ_選択コース & "") > 0 Then DoCmd.OpenReport "レポート" & Me.コンボ_選択コース.Value, acPreview Else MsgBox "先に[コンボ_選択コース]を選択して下さい。" End If End Sub 最初の質問ですが、レポート名の末尾を1,2,3,4に対応させれば1行でOKです。 >フォームから数値を拾ってレポートの行数を変える方法・・・。 この回答は割愛します。
お礼
なるほど。 どのように進めていけばいいのか分かってきました。 分かりづらい質問に丁寧に答えていただき どうもありがとうございます☆