Access2003を使用しています。初心者です。
現在モジュールに以下のようなプロシージャを書いて、クエリ内の数式で使用しています。
Public Function Nendo() As Integer
Nendo = 25 ’年度
End Function
このようなものが20個程あり、年度が変わるごとに全ての値を入力し直しています。
(年度・西暦・配付率などその年の数値)
これを、例えばメインフォームで”25”(年度)と入力したら、モジュールをその年のデータに全て書き換えるVBAを作りたいと思っています。
そこで”年度”を主キーにしたテーブルを作成し、そこに他の項目(西暦・配付率など)のフィールド(20個)を設定し、そのデータを利用できないかと考えています。
そもそもモジュールの値を書き換えたりできますか?
どのようなVBAを書けばいいか、教えていただけると幸いです。
No.2ベストアンサー
- 回答日時:
>このようなものが20個程あり、年度が変わるごとに全ての値を入力し直しています。
>(年度・西暦・配付率などその年の数値)
これのデータを何に使用するのですか?レポートなど?
>そこで”年度”を主キーにしたテーブルを作成し、そこに他の項目(西暦・配付率など)の
>フィールド(20個)を設定し、そのデータを利用できないかと考えています。
これだと、データとして何にも使えますが、用途は?
ご回答ありがとうございます!!
用途をご説明いたします。
業績管理をしており、例えば、[発生年月]・[受注高]というフィールドがありクエリで集計しています。
受注上期: IIf(T金額!発生年月 Between DateSerial(honnen(),4,1) And _
DateSerial(honnen(),9,30),T金額!受注高,0)
このような集計を多数行っています。
他には、[原価]に当年の[共通比配賦率]○○%(当年はこの率を使うと決まっていて毎年変わる)を掛けて共通費を算出したり。
共通費上期: 原価*Tounenkyotu()
また、繰り越す(年をまたぐ)物件があるため、前年の[共通比配賦率]も使用して算出することもあります。
共通繰入: [繰入原価]*Zennenkyotu()
全てクエリで計算し、それを使用してレポートを作成しています。
>これだと、データとして何にも使えますが
もしかしてモジュールじゃなく、普通にテーブルデータを利用してできるってことですか?
そのパターンでもちょっと考えてみます。
No.1
- 回答日時:
> そもそもモジュールの値を書き換えたりできますか?
多分めちゃくちゃ難しい。VBAでVBAを変えるという事になるからね。つまり、Accessオブジェクトではなく、mdbをバイナリ解析してプロシージャ部分を切り出し、値を書き換えてバイナリファイルに戻して際コンパイルをかけるというような事をせねばならん。
それよりかはそのNendo()を一箇所だけにして、全モジュールがそいつを参照するようにする方が良いだろう。標準モジュールにつくればそのMDB内でシステムグローバルに呼び出す事ができる。
あなたが言っているようにテーブルを作ってそこに年度データを持たせるのがベストな選択肢だろう。MDEとしてコンパイルする場合でも毎年MDEを作り直す必要が無くなる。
ご回答ありがとうとうございます!!
モジュールの値を書き換える方法は難しいんですね。
>それよりかはそのNendo()を一箇所だけにして、全モジュールがそいつを参照するようにする方が良いだろう。標準モジュールにつくればそのMDB内でシステムグローバルに呼び出す事ができる。
一箇所だけにする というのはどういう意味ですか?
その他のモジュールがNendo()を参照して、どのような処理をするのが良いでしょうか。
作成したテーブルの情報を引っ張って来る方法も分かりません。
質問ばかりで申し訳ないですが、ご教授いただけると嬉しいです!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) マクロについて教えてください。 4 2023/06/06 09:06
- Visual Basic(VBA) VBAで自動集計(特定セルコピー月ごとに値貼り付け)したい。 6 2023/06/25 11:37
- Visual Basic(VBA) マクロについて教えてください。 1 2023/06/06 00:57
- Excel(エクセル) エクセルのフッタやヘッダーについて 3 2023/02/04 09:45
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- Visual Basic(VBA) Excel・ユーザーフォームの情報を受け渡したい 4 2022/06/08 10:11
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Excel(エクセル) エクセルのイベントVBAを複数のシートで動かしたい 1 2022/12/07 16:55
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessのフィールド数が255しか...
-
ACCESSでの改行コード
-
INSERT INTO ステートメントに...
-
Accessでテーブルの値をテキス...
-
アクセス エラーを数値「0」に...
-
accessで重複を防ぎたい
-
アクセス VBAで列の入れ替...
-
ACCESS検索★ある文字を複数のフ...
-
【Access】フォームで自動計算...
-
accessのレポートで元になるテ...
-
主キーはオートナンバー型のID...
-
ACCESS レーダーチャートのデー...
-
ExcelからAccessにデータを取り...
-
Accessで別途保存の画像ファイ...
-
ACCESSで400以上のフィールドが...
-
ACCESSでテーブルのフィールド...
-
ACCESSで和暦を西暦に・・・
-
ACCESSのフォームでアルファベ...
-
アクセスで複数行の一括入力す...
-
Access:リンクテーブルマネー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでテーブルの値をテキス...
-
Accessのフィールド数が255しか...
-
ACCESSでの改行コード
-
INSERT INTO ステートメントに...
-
ACCESSで400以上のフィールドが...
-
Access 昇順・降順で並び替え...
-
SQLServer2005のSQL文での別名...
-
【Access】フォームで自動計算...
-
ACCESSで和暦を西暦に・・・
-
accessで重複を防ぎたい
-
アクセス エラーを数値「0」に...
-
accessのレポートで元になるテ...
-
ExcelのデータをコピーでACCESS...
-
主キーはオートナンバー型のID...
-
アクセス VBAで列の入れ替...
-
Accessで、固定アルファベット+...
-
Access:リンクテーブルマネー...
-
ACCESS検索★ある文字を複数のフ...
-
アクセスのテーブルデータをCSV...
-
ACCESSでテーブルのチェックを...
おすすめ情報