AccessのVBAを久々に作らざるを得なくなったのですが、
方法が判らずに困っています。
Accessで月毎に列を持っているクエリー(テーブル)から、
各月の数字を印刷するレポートを作成するために、
レポートで参照する列名を固定にして、クエリーの計算式(参照先)をVBAで変更しよう
と考えてます。
例) 月別集計クエリーQ1(テーブルAとBをジョインして作成している)
列名 参照先
--------------
M1 A.M1
M2 A.M2
M3 A.M3
(略)
M12 A.M12
M (可変)11月の時A.M11
N (可変) 11月の時B.M11
これに対して、
コントロールソースQ1を使用しているレポートを開く時のイベントで
M及びNのコントロールソースを変更させようと思います。
"M11"の部分は実際には変数で値をセットします。
Dim db As DAO.Database
Dim qd As DAO.QueryDef
Dim fld As DAO.Field
Dim tb As DAO.QueryDef
Set db = CurrentDb()
Set qd = db.QueryDefs("A")
Set fld = qd.Fields("M11")
Me("M").ControlSource = fld.Name
というような方法で書くと、
「指定した式で参照されている'M'フィールドが見つかりません。」
と出ます。
Me.Controls("SS4JNSR").ControlSource = fld.Name
でも同じです。
レポートのコントロールソースがジョインしていないクエリーだと、
Set fld = tb.Fields("M11")
Me("M").ControlSource = fld.Name
だけで動作するのですが、結合列の場合の参照の仕方が判りません。
教えて頂けないでしょうか?
No.2ベストアンサー
- 回答日時:
フォームが参照するクエリのフィールド名を固定しておくんですよ。
Set fld = qd.Fields("当月")のようにして。
それで月ごとに"フォームが参照するクエリ"を修正するんですよ。
11月だったら以下のようにしておいて
select A.M11 as 当月1, B.M11 as 当月2 from A inner join B on ・・・
12月になったら以下のようにクエリを修正する
select A.M12 as 当月1, B.M12 as 当月2 from A inner join B on ・・・
こうすればフォームが参照するのは常に"当月1"と"当月2"です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
ACCESSでコントロールソースの変更
Access(アクセス)
-
Accessのレポート上のテキストボックス値を設定したい
その他(データベース)
-
レポートのコントロールソースを条件により変えたい
その他(データベース)
-
-
4
ACCESSで値を代入できないとは?
Visual Basic(VBA)
-
5
ACCESSのフォームで次のレコードに移動しない方法を教えてください
その他(データベース)
-
6
Access フォームのテキストボックスに半角英字のみで入力する設定は
Access(アクセス)
-
7
【ACCESS】フォーム名/コントロール名を文字列型変数で指定するには
Access(アクセス)
-
8
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
9
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
10
Accessでレポートの項目をVBAで変更したい
その他(データベース)
-
11
このオブジェクトに値を代入することはできません
その他(データベース)
-
12
'2465'指定した式で参照している'直線Aii'フィールドが見つかり
Visual Basic(VBA)
-
13
テキストボックス名を変数で指定してプロパティ設定?
その他(データベース)
-
14
レコードを保存するコード アクセスvba
その他(Microsoft Office)
-
15
ACCSESS2013VBA フォームのレコードソースを変更する
その他(データベース)
-
16
メッセージボックスに表示する文字を大きくしたい
Excel(エクセル)
-
17
access数値型のテキストボックスに単位を付けたい
Access(アクセス)
-
18
Accessクエリ 複数フィールドを対象に空白の場合は全件表示したい
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・「I love you」 をかっこよく翻訳してみてください
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・昔のあなたへのアドバイス
- ・かっこよく答えてください!!
- ・あなたが好きな本屋さんを教えてください
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アクセスのレポートのヘッダー...
-
エクセルで表を作り、ピボット...
-
ACCESS のレポートに、ある一つ...
-
Accessのフォーマット時イベント
-
アクセスのレポートで空白のテ...
-
Accessでページヘッダーだけが...
-
Accessのレポート上のテキスト...
-
ACCESS 単票形式のレポート
-
テキストボックスにコントロー...
-
Access2013でレポートを名前を...
-
アクセスでレポート作成時にデ...
-
Accessのレポート集計について
-
★お手上げ状態です。助けてくだ...
-
Accessを使ってレポートを印刷...
-
accessレポートにwordの文...
-
アクセスのレポート参照について
-
Access2007でページ毎にPDFを出...
-
ACCESS2000 VBAで印刷時にサブ...
-
ACCESS2000レポート...
-
AEDについてレポートでまとめる...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスのレポートのヘッダー...
-
Accessのレポート上のテキスト...
-
accessレポートにwordの文...
-
Accessでページヘッダーだけが...
-
ACCESS2000 VBAで印刷時にサブ...
-
テキストボックスにコントロー...
-
Access2013でレポートを名前を...
-
Accessでレポートの項目をVBAで...
-
Access チェックボックスを使...
-
レポートのラベルなどの非表示...
-
Access2007でページ毎にPDFを出...
-
★お手上げ状態です。助けてくだ...
-
レポートのコントロールソース...
-
Accessのフォーマット時イベント
-
アクセスのレポートで空白のテ...
-
Access ページフッターとレポー...
-
ACCESSのレポートフッターをグ...
-
ACCESS レポートでグループご...
-
計算結果がレポートビューでは...
-
アクセスのレポートでこんなこ...
おすすめ情報