• 締切済み

accessでVBAで使う設定の保存?

アクセスでメール送信などにVBAを多用したデータベースを作っています。 例えば消費税の数値などが変わるとクエリやレポート、VBAのコードの中まで直さなくてはいけないのですが、これらの同じ内容の設定ををひとつの箇所にまとめておくにはどうすればいいでしょうか? 自分で考えた方法は、設定保存用にテーブルを作り、そこからVBAなどで読み出すようにしようと考えましたが… こうなると設定を読み出す必要のあるレポートやクエリを使用するときは必ずVBAを介さないといけないのでかえって複雑になってしまう気がします。 消費税以外にも共有したい部分がたくさんあるので(会社のメールアドレス、名前、住所等…)何か変更があったときに一箇所フォームで直せれば理想です。 --- また、構造は同じレポートで文章の一部を変えて別の用途のレポートにすることもやっていました。 納品書の一部のラベルのキャプションの内容をレポートを開く前にVBAで書き換えて請求書にする…というものです。 今まではこれの書き換える内容はVBAのコードの中に埋まっていました。 これもテーブルか何かに、「納品書の場合の題名、請求書の場合、確認表の場合…」というように分類して外から簡単に確認や変更ができる形で利用したいです。 何かよいアイディア等ありましたらぜひお教えください。 よろしくお願いします。

みんなの回答

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.1

前半部分 正規化が出来ていないような気がします。 http://www.kogures.com/hitoshi/webtext/db-seikika/index.html 後半部分 InputBox関数などで、レポートのタイプを選択させ レコードセットの中から該当レコードを抽出して フォーマット時イベントなどで書き換えるようになるのかな。

yuri0987
質問者

お礼

ありがとうございます! 後半部分は大体そんな感じで行こうと思います。 フォーマット時書き換えでいけるんですか。知りませんでした 前は、編集状態で開く→書き変え→閉じる→プレビューで開く とやっていたので、ずいぶんすっきりします。 前半部分ですが説明不足のようでごめんなさい。 消費税や会社名は自社のもので、まったく同じものをレポートの隅やメールのフッタに入れるような感じです。 ご紹介のHP読みましたが難しいですね。 頭がついていかなくて大変です。

関連するQ&A

  • AccessのVBAでパラメータクエリー設定

    お世話になります。 AccessのVBAで質問させてください。 「クエリーA」に設定している「ID1」のパラメータを 「テーブルA」の「IDX」の値を設定したいと思っております。 「ID1」にパラメータ2を設定する方法は分かったのですが、 下記の2つの方法がわかりませんでした。 ・「ID1」のパラメータを「テーブルA」の「IDX」の値を設定する方法 ・「テーブルA」は複数レコードあるので、その数だけfor文的なループで回したい お手数で申し訳ございませんが、 「クエリーA」に設定している「ID1」のパラメータを 「テーブルA」の「IDX」の値を設定する方法VBAコードを 教えて頂ければと思います。 本当に勝手いいますが、コードを記載して頂ければと思います。 宜しくお願い致します。 -----「ID1」にパラメータ2を設定する方法----- Set qdf = dbs.QueryDefs("クエリーA") With qdf .Parameters("ID") = 2 Set rst = .OpenRecordset End With

  • AccessのVBAで、パラメータを使用したクエリ

    お世話になります。 Access2000のVBAで質問させてください。 現在、下記の様な状況です。 ・「テーブルA」がある。 ・「テーブルA」の"番号"が"1"のものだけを抽出する「抽出」クエリを作成 ※クエリのデザインビューで"1"を指定するのでなく、    VBA上で、パラメータとして"1"を指定したい    1ではなく、2に変わる事もあるため、VBAで操作。 ・結果をExcelに書き出したい そこで、いろいろなサイトを見たのですが、 ・VBAでパラメータを使用したクエリを作成 ・Excelに書き出し の2つの内容が別々に記載されており、 私の力では、別々で作成はできるのですが、 ・VBAでパラメータを使用・設定したクエリをExcelに書き出し する事はできませんでした。 本当に勝手で申し訳ございませんが、  ・VBAでパラメータを使用・設定したクエリをExcelに書き出す ソースを頂けないでしょうか? 「××と○○を組合わせればよい」などの、一部を抽出したコメントは、 不要ですので、本当に申し訳ございませんが、 ソースレベルでご返信頂ければと思います。 ※一部を抽出したコメントは、ネットで見たのですが、結果、  目的を達成することはできませんでした。 お手数で申し訳ございませんが、なにとぞ宜しくお願い致します。 ※何度ひつこい・勝手ですみませんが、ソースレベルでの 回答のみお願いします。

  • Access VBAの勉強 ソフトのバージョン

    家にAccess2003のソフトとVBAのテキストがあります。 以前仕事でAccess2003を少し使っていました。テーブルの設定やクエリの作成、それを用いたデータの加工などです。 VBAも勉強したいのですが、2013バージョンが出ている今、2003で勉強しても無駄でしょうか? VBAの部分はさほど変わっていないかなと思ったのですが、どうでしょうか。 ちなみにAccess2010は講習を受けて一応ざっとですが、テーブル、クエリ、レポート、フォームの作成を勉強しました。 今後仕事で使うことを考えるとやはり新しいバージョンで勉強した方がいいかと思いますが、今ソフトとテキストを新たに買う余裕がないので、迷っています。

  • ACCESSとレポートとVBAと

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

  • ACCESSで残高のある請求書作成で困っています

    アクセスを使って納品伝票を作っているのですが、 納品書は作れたのですが、請求書を作る所で困ってしまいました。 請求書には得意先の月ごとの請求額と、前月の残高を印刷したいのですが、集計した請求額と残高をうまくレポートに表示できません。 現在、納品テーブルから追加クエリを用いて 取引テーブルに一月ごとの請求額を集計して追加しています。 納品テーブル(得意先 日付 売上)  追加クエリにて… 取引テーブル(得意先 日付 請求額 入金(残高))    (日付はその金額を算出、あるいは入力した日です) 入金もこのテーブルに追加しているのですが、残高で困ってしまいました。 残高はSum(請求額)-Sum(入金額)で求められると思うのですが、このデータを格納する場所がわかりません。 できれば取引先テーブルの入金フィールドの隣にでも追加できれば楽なのですが…(できればそのままレポート作れますよね)。 今は残高テーブルを新たに作り、そこに追加クエリで追加しています。 残高テーブル(得意先 日付 残高) 現在、得意先の情報を入力する得意先フォームのサブフォームに取引テーブルの内容を表示するようにしてあります。 入金もこのフォームから行っているのですが、このフォームから表示している得意先のIDと日付を元に、取引テーブルの請求額と残高テーブルの残高を参照してレポートは作成できますか? フォーム上のコマンドボタンから印刷しようと思い、 マクロの条件式をいろいろ変えたりしてみましたがうまくいきません。 どうもレポートの理解がまだ足りない様です。 かなり見当違いの事をしているのかもしれませんが、 どうか宜しくお願い致します。           

  • アクセスでデータを横に並べる方法

    アクセス2003を使って注文管理のデータベースを作っています。 テーブル「納品データ」のデータを発注番号ごとに納品日と納品数を横に並べたものを作りたいのですが、集計クエリでやってみてもうまくできませんでした。過去の質問の中にも似たようなものがあったのですが、一部理解できない箇所があったりして方法が分からなかったため、質問させていただきます。 ■テーブル「納品データ」 |納品番号|発注番号|納品日|納品数|   1     1   04/01  5   2     1   04/02  4   3     1   04/03  3   4     2   04/06  8   5     2   04/08  7   6     3   04/04  6   7     3   04/07  5   8     3   04/09  4   9     4   04/05  7   10     4   04/08  8 ■今やろうとしているもの 発注番号|納品日|納品数|納品日|納品数・・・  1   04/01  5  04/02  4  04/03 3  2   04/03  8  04/04  7    3   04/02  6  04/03  5  04/04 4  4   04/02  7  04/03  8 うまく表形式でできなくて、ズレていてすみません。 最終的には、これをサブクエリとしてメイン-サブの親子レポートを作成しようと思っています。

  • ACCESSレポート グループフッターの計算結果をレポートフッターで使う

    いつもお世話になっております。 「部署」「商品」「金額」の3フィールドからなるテーブルを元に、下記のようなレポートで消費税を計算させようとしています。(実際はもっと項目は多いです。) =============『詳細』 部署_商品_金額 =============『部署グループフッター』 ="部署計"__部署合計 ←=Sum([金額]) ="消費税"__部署消費税 ←=[部署合計]*0.05 ="請求額"__部署請求額 ←=[部署合計]+[部署消費税] =============『レポートフッター』 ="全体計"__全体合計 ←=Sum([金額]) ="消費税"__全体消費税 ←=Sum([部署消費税]) ="請求額"__全体請求額 ←=Sum([部署請求額]) レポートフッターの =Sum([部署消費税]) =Sum([部署請求額]) この2箇所がエラーになってしまいます。ヘルプを見るとそういうSumの使い方は出来ないようなことが書かれていました。 やりたいことは分かっていただけたでしょうか。 要するに部署ごとに消費税を出し、全体では各部署の消費税を加算したいのです。 今は仕方がないので部署ごとの消費税を出した別テーブルを用意しておいて、部署をキーにDsumで求めていますが、このやり方は気に入りません。 レポートの中だけでうまいやり方はないでしょうか。 ACCESS2000です。 よろしくお願いします。

  • Access VBA内でのクエリの紐付け

    お世話になります。 Accessにて、ローカルに12個(月毎)にクエリを作成し、そのらのクエリを紐付けてテーブルを作成しようとしています。 しかし、できればローカルにクエリを作成したくないので、VBA内で仮想?にクエリを作成し、それらを紐付けて最終的にテーブルを作成したいと考えています。 VBAのイメージ的には以下のような感じです。  フォーム上のボタンがクリックされた際に、    MySQL1 = 1月分の選択クエリ    MySQL2 = 2月分の選択クエリ    MySQL3 = 3月分の選択クエリ            ・            ・    MySQL11 = 11月分の選択クエリ    MySQL12 = 12月分の選択クエリ    MySQL13 = 上記12個の選択クエリを紐つけたテーブル作成クエリ(tempを作成)    DoCmd.RunSQL MySQL13    'tempが作成されたら、そのテーブルをソースとしたレポートをOpen          DoCmd.OpenReport "年間実績"    以上です。 それぞれの選択クエリを、 Set RS0 = DB.OpenRecordset(MySQL0) Set RS1 = DB.OpenRecordset(MySQL1) のようにして、MySQL13のテーブル作成クエリで、RS0、RS1を使用すればよいかと思ったのですが、『入力テーブルまたはクエリ”RS0”が見つかりませんでした。そのテーブルやクエリが存在していること、または名前が正しいことを確認してください。』と表示され、うまくいきません。 そもそも、上記のように仮想でクエリを作成し、それを紐付けてテーブルを作成することは可能なのでしょうか。よい方法がございましたらご教授願います。 以上、宜しくお願い致します。  

  • アクセス(Access)で、3つのクエリ処理結果を1つのレポートに出力させたい

    こんにちは。QNo.348201 では大変お世話になり、有難うございました。とっても助かりました。 又、以前よりもほんのちょぴっとですが^^; 理解出来た部分が増えたので感謝しております<(_ _)> 皆様からご指導頂きました通りに作業をしまして無事、完成させたクエリですが、現在はそれを レポートに出力する所で行き詰まっております。やりたい作業は下記の通りです。 <クエリ> 1.“A 4月分” →フィールド名=合計金額/一般管理費 2.“B 4月分” →フィールド名=合計金額/消費税相当額 3.“C 4月分” →フィールド名=費目/種別/WBS番号・・・など合計16フィールド レポートに出力したいフィールドは “C 4月分”全部と、その行間に“A 4月分”の【一般管理費】、 “B 4月分”の【消費税相当額】を挟むような形で出力したいのですが、下記のようなエラーが出て しまいます。 『選択したフィールドのレコードソースにアクセスできません。テーブルと、そのテーブルを基にした クエリのフィールドを選択した可能性があります。もしそうであれば、テーブルかクエリのどちらかの フィールドだけを選択して下さい』 レポートの新規作成 から入り、「複数のテーブルまたはクエリからフィールドを選択出来ます」と 説明されていた レポートウィザード を選びました。 作業が滞っているのは、クエリで作成した、これら3つが起因しているのでしょうか。 このような複数クエリを1枚のレポートに出力する場合は、クエリでの作業は、一旦、テーブルとして 吐き出して、テーブルに入ったこれら3つを、レポートで処理する…という形になるのでしょうか。 前回同様、明日中に処理しなくてはならない背景があり、ご多忙中の所、誠に恐縮ではございますが 何卒、ご指導の程、宜しくお願い申し上げます。

  • Accessでのクエリー作成

     テーブル 納品先コード・納品先名・商品名・数量・仕入れ先コード・仕入れ先名  となっているのを、 クエリー上で 納品先コード・納品先名・(仕入れ先別納品)数量合計・仕入れ先コード・仕入れ先名  としたいのですが、どうしたらいいでしょうか?

専門家に質問してみよう