• ベストアンサー

Access2003

Access2003で顧客名簿を作っています。 入会者をフォームで登録し そのままボタンで初回カルテを印刷するようにしました。 この時、申込コースによって レポートを変える方法を教えてください。 (ボタンをたくさん作る方法しかできませんでした(-_-;)) また、あるコースは レポートの書式は同じで、通う回数が4種類から選べるのですが フォームから数値を拾ってレポートの行数を変える方法などもあれば教えていただきたいです。 分かりづらい説明でごめんなさい。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • gatt_mk
  • ベストアンサー率29% (356/1220)
回答No.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で記述するかはご質問者が勉強するしかありません。

yukipong
質問者

お礼

なるほど。 どのように進めていけばいいのか分かってきました。 分かりづらい質問に丁寧に答えていただき どうもありがとうございます☆

その他の回答 (1)

noname#140971
noname#140971
回答No.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です。 >フォームから数値を拾ってレポートの行数を変える方法・・・。 この回答は割愛します。

関連するQ&A

  • ACCESSフォーム入力後の確定

    こんにちは。 初歩的な質問ですみません。 Access2003で名簿を作っており フォームに印刷ボタンを作り where条件で顧客名を拾ってその人のカルテが出るようにしてあります。 ですが、新規入力後すぐに印刷したいとき レコードがまだ確定されていないのか、うまく機能しません。 なので、いったん前後のレコード画面を開いてから もう1度戻って、印刷ボタンを押しています。 手間がかかるので、何か良い方法はないでしょうか?

  • ACCESSとレポートとVBAと

    初めまして。 まったくの初心者ですが宜しくお願いします。 環境はOS:Xp・ACCESS2000です 現在、フォームに印刷ボタンを作成し、 それを押下後、レポートの画面が開くというものを VBAを用いて作成しています。 フォームには顧客コードというものを設定しているのですが、顧客コードを何番に変更しても印刷ボタンを押すと一番最初のデータ(私の場合は顧客コード「1」)がレポートに表示されます。 これをフォームの顧客コードとレポートの顧客コードが同じ番号になったレポートを表示したいのですが、どのようなVBAのコードを打てばよろしいでしょうか? 質問の意図をしっかりとお伝え出来ていないかも知れませんが、よろしくお願いします。

  • ACCESSで重複データをまとめたいのですが・・・

    ACCESSでアンケートを集計しています。 顧客名簿テーブルとアンケートテーブルがあり、 2つのテーブルは顧客IDで関連しています。 各テーブルを簡略化すると以下の通りです。 <顧客名簿テーブルのフィールド> 顧客ID(オートナンバー型)、名前(テキスト型)、住所(テキスト型) <アンケートテーブルのフィールド> アンケートID(オートナンバー型)、顧客ID(数値型)、回答1(数値型)、回答2(テキスト型)、回答3(メモ型) 顧客名簿テーブルとアンケートテーブルを顧客IDでつなげたクエリを作成し、 検索フォームでアンケートの内容で検索しています。 検索で絞り込んだ顧客を、レポートを作って リスト印刷したり宛名印刷したりしたいのですが、 アンケートに数回答えてる人は何回も出てきてしまいます。 これを一人1回だけ出てくるようにしたいのですが、 どうしたらよいのでしょうか? クエリをグループ化しようとしましたが、 メモ型フィールドがあるとダメみたいです。 ACCESS97を使用し、Windows98~XP Proで動かしています。 初心者ですので細かく教えていただければ幸いです。 よろしくお願いします。

  • Accessデータ並べ替えをハイブリッドにしたい

    [使用しているツール] Access 2007 PROFFESSONAL [やっていること(現状)] 1つのテーブルで複数のクエリ(複数のフィールドの並べ替えが必要な為)と複数(クエリと同数)のフォームを作成して、フォームの数だけコマンドボタンを作成してフォームを一覧表示で開いています。 [やりたいこと] 1つのテーブルで「1つのクエリ」による複数のフィールド(名)を切替えて、「1つのフォーム」で表示(一覧)させたいと思っています。 例えば、テーブル名:顧客名簿(取引先、県名、商品名、入庫日)、クエリ名:顧客名簿クエリ、フォーム名:顧客名簿一覧としたとき、(取引先、県名、商品名、入庫日)をコンボボックス等で切り替えることで、指定したフィールド(名)で並び替えられたデータを「フォーム名:顧客名簿一覧」に表示させられないでしょう。 [考えたこと] コンボボックス(名前:コンボ1)を作成し値集合ソースに「”取引先”;”県名”・・・・。」と入力、クエリ「顧客名簿クエリ」の抽出条件欄にビルダを起動させて「・・・コンボ1」を指定、フォーム「顧客名簿一覧」のレコードソースにクエリ「顧客名簿クエリ」を選択しました。しかし、フォーム「顧客名簿一覧」を開いても、データは抽出できずデータなしの表示で先へ進めていません。 以上ですが、宜しくお願いします。

  • ★アクセス2002★一部の単語で抽出する記述

    winXP 顧客名簿フォームに非連結のテキストボックスを2つ作成し(テキスト1,2)、コマンドボタンに下記の様に記述し、[カナ]と[都道府県]ごとに抽出できるようにしました。 Case 1 DoCmd.ApplyFilter , "[カナ] = Forms!顧客名簿フォーム!テキスト1" Case 2 DoCmd.ApplyFilter , "[都道府県] = Forms!顧客名簿フォーム!テキスト2" この場合、完全一致で抽出できるのですが、[テキスト1]に"ア"と入力して、"ア"で始まる顧客を抽出したいのですが、うまくいきません。過去に同じような質問があったので参考にして記述したのですがエラーになってしまったので、よいアドバイスをお願いします。

  • アクセス2000でクエリを組んだのですが。。。

    こんにちわ。アクセス初心者です。まず順に追って説明します。 (1)15000件ある顧客名簿と1500件ある担当会社のテーブルをリレーションで結び、クエリを組みました。「Q_顧客名簿」と名づけました。その時点で15000件データが存在します。 (2)フォーム「Q_顧客名簿」を元にフォームを作成しました。そして氏名の曖昧検索をしたいのでまずフォームのテキストボックスに「氏名検索」と名づけて、クエリの画面に戻り「Q_顧客名簿」を元に新たなクエリを組み、「氏名」のフィールドの抽出方法に以下のような文を入れました。 『Like "*" & [forms]![集合フォーム_1]![氏名検索] & "*"』 このクエリを「Q_氏名検索」と名づけました。 (3)フォームの左端をに「Q_氏名検索」が生きるよう設定をし、「氏名検索」のテキストボックスに「再クエリ」を組んだのですが、顧客データ数が15000あるはずなのが11000まで減ってしまいました。 おそらく検索式に何かが足りないのだと思うのですが、SQLやVBAがわからないのでどうすればいいかわかりません。 アクセスの詳しい方、教えていただけませんでしょうか?よろしくお願いいたします。

  • フォームを1つだけ閉じる方法は?

    ただ今VB2010で学習中ですが、メニューフォームを作成しボタンをクリックすると顧客名簿を入力することができるフォームが開きます。入力後、顧客名簿入力フォームを閉じると、メニューフォームまで閉じられてしまいます。メニューフォームは開いたままで顧客名簿入力フォームだけ、閉じるようにしたいのですが、調べてもなかなかうまく答えが見つかりません、 どなたか、よろしくお願いいたします。

  • アクセスのレポートにオプションボタンを表示するには?

    アクセスのフォームで作成したオプションボタンをレポートにオプションボタンの形で表示することは出来るのですか?フォームで入力するとテーブルとレポートに数値(1とか2とか)で出ます。テーブルは数値でもかまわないのですが、フォームにはオプションボタンの形で表示したいのです。それがダメなら文字表示(例・参加・不参加・未定等)でも仕方ないとは思っています。

  • アクセスの名簿作り

    アクセスにて、顧客名簿を作ろうと思っています。 その際に、●●店から申込みをしたら、その店の店舗番号が、 次のテキストボックスに、表示されるようにしたいのですが、 設定の仕方がよくわかりません。 テーブルを作り、フォームの作成から行っておりますが、どのように設定をしたらいいのでしょうか? 宜しくお願い致します。

  • Access2000レポートについて

    Access2000で担当者別顧客名簿を作成しています。担当者別なので顧客の重複があります。 クエリで抽出してレポートのラベル印刷をしたいのですが、顧客の重複している場合は、1ラベルだけ印刷したいのです。テーブルの削除はしてはいけないのです。できる方法ご存知の方お願いします。 また、顧客名の重複がある場合チェックが自動的に入る方法もありましたらお願いします。

専門家に質問してみよう