Access2000VBA オブジェクト転記時にレコードソースや標題も一緒に変更したい

このQ&Aのポイント
  • Access2000VBAでフォームやレポートのオブジェクトを転記する際、レコードソースや標題も変更したいです。具体的には、テーブル名、フォーム名、レポート名を一覧として持つテーブルからインポートしたテーブル名を利用し、DLookUp関数を使ってフォームやレポートの名称を取得することはできました。しかし、全体プロパティのレコードソースや標題を変更する方法が分かりません。初心者ですので、詳しいコーディング方法を教えていただけると助かります。
  • Access2000VBAでフォームやレポートのオブジェクトを転記する際、テーブル名、フォーム名、レポート名を一覧として持つテーブルからインポートしたテーブル名を利用してDLookUp関数を使ってフォームやレポートの名称を取得する方法が分かりました。しかし、全体プロパティのレコードソースや標題を変更する方法が分かりません。初心者ですので、具体的なコーディング方法を教えていただけると助かります。
  • Access2000VBAでフォームやレポートのオブジェクトを転記する際、テーブル名、フォーム名、レポート名を一覧として持つテーブルからインポートしたテーブル名を利用してフォームやレポートの名称を取得する方法は分かりました。しかし、全体プロパティのレコードソースや標題を変更する方法がまだ分かりません。初心者ですので、詳しいコーディング方法を教えていただけると助かります。
回答を見る
  • ベストアンサー

Access2000VBA オブジェクト転記時にレコードソースや標題も一緒に変更したい

転記したフォーム、レポートのレコードソース、標題をVBAで変更したいんです。 テーブル名、フォーム名、レポート名の3つのフィールドが一覧となっているテーブル「オブジェクト名」があるとします。 ○例「オブジェクト名」テーブル テーブル名  フォーム名  レポート名 T_ああ      F_ああ    R_ああ T_いい      F_いい    R_いい まず、Excelからインポートしたテーブル名を、上の一覧中のテーブル名「T_ああ」をインプットボックスでまず割り当てておきます。 割り当てた値は「varac」とします。 また、フォーム「オブジェクト作成」に、「フォーム作成」、「レポート作成」というコマンドボタンを作り、TransferDataBaseメソッドを利用し、フォーム、レポートを、既にあるそれぞれ元となるオブジェクトから転記していきます。 その際、それぞれの名称は、DLookUp関数を使い、「varac」を元にして「オブジェクト名」テーブルからフォーム名、レポート名を引っ張ってきます。 ここまでは順調に出来ました。 さらに値「varac」を利用して、フォーム、レポートのレコードソース、標題を変更したいんです。 でも、どうコーディングしたら全体プロパティのレコードソース、標題が変わってくれるのか分かりません。 一つのフォームのレコードソースや標題を変えるのなら、 Me.RecordSource = varacや、Me.Caption = varacにすれば変更できます。 ただ、転記中にフォーム「オブジェクト作成」からどう指示したら、転記先のフォーム上のプロパティ、または転記先のレポート上のプロパティと、認識してくれるのかまったく分かりません。 初心者でもあるため、コーディングに詳しいコメントをしていただくと、とても嬉しいです。 よろしくお願い致します。

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

  • ベストアンサー
  • Gin_F
  • ベストアンサー率63% (286/453)
回答No.2

> 転記中にフォーム「オブジェクト作成」からどう指示したら、転記先の > フォーム上のプロパティ、または転記先のレポート上のプロパティと、 > 認識してくれるのかまったく分かりません。   Dim strName As String   strName = "フォーム名"      DoCmd.OpenForm strName, acDesign   With Forms(strName)     .RecordSource = varac     .Caption = varac   End With      DoCmd.Close acForm, strName, acSaveYes こんなことでしょうか? > コーディングに詳しいコメントをしていただくと 難しいことは、何もしていないです。 ただ、デザインビューで開き、プロパティをセット。 で、保存して閉じているだけです。 別フォームの参照方法がわからなかったということですよね?

sydneyh
質問者

お礼

Gin_Fさま、回答ありがとうございます。 >こんなことでしょうか? こんなことです! 出来ました! 私のやりたいことそのもののお答えでしたよ。 今はAccess、VBA両方お勉強中で深みにはまってるところです。 これでまた一つお勉強になりました。 どうもありがとうございました。

その他の回答 (1)

  • kakusuke
  • ベストアンサー率36% (95/259)
回答No.1

結論から言うと、 無理です。 なぜなら、 フォームオブジェクトや、 レポートオブジェクトというのは VBAではなく、 VBE(Visual Basic Editer)が 制御しているからです。 VB6.0などで、 コーディングアドインを作成しない限り、 不可能です。

関連するQ&A

  • ACCESSで標題を変更する

    いつもお世話になっています。 レポートで標題を変更しようと思い、 Me.Controls("ラベル" & Skaisu).Caption = namae(i) としました。 しかし、「オブジェクトはこのプロパティーまたはメソッドをサポートしていません」のメッセージが表示されます。 レポートでの標題の変更って出来ますよね?

  • Access レポートのレコードソースについて

    Access レポートのレコードソースについて Access2000を使っています。 VBAでテーブル一覧や構造を Debug.Print に出力する方法が、あるWebサイトで紹介されて いたのですが、Debug.Print ではなく、レポートに出力することは可能でしょうか・・? 一般的には、レポートのレコードソースには、クエリやテーブルを使うと思いますが・・・。 よろしくお願いします。

  • フォームのレコードソース(Access2000)

    質問させていただきます。 フォームの「レコードソース」でテーブルとクエリーのほかに、「SELECT テーブル名、フィールド名・・・」というのがあります。これもクエリーなのでしょうか? ちなみに、レコードソースの右にある「---」をクリックすると「SQLステートメント:クエリビルダ」というものが開きます(クエリー画面と同じ?)。 また、フォームのレコードソースはテーブル、クエリー、SOLステートメントのどれにすれば良いのでしょうか?

  • Access ソースオブジェクトの変更について

    Access2007を使用しています ボタンを押すとサブフォームのソースオブジェクトを "A"から"B"に変更 するように下記のプログラムを設定しました。 Me!SubF.SourceObject = "テーブル.B" 動かしてみると、フィールド名はちゃんと表示されるのですが、データが全く表示されません。(デザインビューでソースを見てみたら、"A"のままで変更されていませんでした。) どうも変更するプログラムが違っているようなのですが…。調べてみたものの一向に判りません。 どなたかご教示の程、宜しくお願いします。

  • ACCESS2000レポートのレコードソースって?

    Access2000のレポートのレコードソースですが、構成が同じテーブルAとテーブルBがあって、パラメータなどでテーブルを切り替える方法はないですか?

  • Access VBAで、Accessフォーム上に表示されたレコードを選

    Access VBAで、Accessフォーム上に表示されたレコードを選択・印刷するには? Access VBA (Access 2003 SP3) SQL Server 2000 の組合せでプログラムを書いています。 フォーム上に表示された複数のレコードを一括印刷するのでなく、 ユーザが、印刷したいレコードだけにチェックを入れて、 チェックの入ったレコードだけを印刷できるようにするには、 どう書いたらよいでしょうか? たとえば、ユーザが外注先の一覧画面で、 選択した外注先だけの宛名ラベルを 印刷できるようにしたいです。 使用するテーブル:T_Gaichusaki 使用するフォーム:F_SearchGaichusaki 使用するレポート:R_GaichusakiLabel フォーム上で、チェックが入っているかどうかを VBAから参照するにはどうしたらよいのか、というところから わかりません。。 VBAのRecordsetオブジェクトを使うのでしょうか? よろしくご教示下さい!!

  • Access テーブルの標題の使用方法

    おせわになります。 テーブルのフィールドプロパティの「標題」で、フィールド名の表示を変えられます。 この標題でフィールド名を変える必要性がわかりません。 ただ単に、テーブルのフィールド名を直接変更してもテーブル、クエリ、フォームおよびレポートのレコード名も自動的に変わります。 結果は同じように思われます。 この「標題」はどういう場合に使用するのでしょうか。 よろしくお願いします。

  • ACCESS97 サブフォームのレコードソースプロパティーを変更したい。

    フォームの中にサブフォーム(データシート)が1つあります。 元のフォームのチェックボックスのオン・オフでサブフォームのレコードソースプロパティーを変更すると、 実行時エラー438 オブジェクトはこのプロパティまたはメソッドをサポートしていません。がでます。 サブフォームのビューは変更したくありません。 だれか助けてください。 If Me.未送信のみ = -1 Then Forms!F_処理選択!F_理選択サブ.RecordSource = "F_処理選択サブ_1" Else Forms!F_処理選択!F_処理選択サブ.RecordSource = "F_処理選択サブ_2" End If

  • ACCESS2000 VBAで印刷時にサブレポートのレコードソースを設定するには?

     フォーム画面にある複数の入力項目から検索条件文を作成、データを抽出してレポートに明細一覧を出力します。  親レポートはDoCmd.OpenReportのConditionで設定出来るのですが、そのレポートフッターにはサブレポートがあり、明細の小計や種別計、総合計を出力するのですが、このサブレポートのレコードソース(またはフィルタ)を設定するにはどうすれば良いのでしょうか?  ・サブレポートのオープン時にMe.Recordsource="SELECT * FROM …" だとエラーになり、オープン時には指定できないとのことでした。 親レポートとは親子関係もなく、使用するクエリーも別です。 VBAで設定するのは難しいのでしょうか?よろしくお願いします。

  • Access サブフォームのレコードソースを変更するには

    Accessのプロシージャについて教えてください。 フォーム FM0020 上に、2つのサブフォーム FS002001 と、FS002002 があります。 メインフォームにある値を使って、サブフォームのレコードソースを変更したい のですが、どうもうまくできません。 FS002001のレコードソースは下記の1行目のコードで変数strSQLに代入出来るのですが、 FS002002のレコードソースは下記の2行目のようにしても 「オブジェクトまたはクラスがこのイベントセットをサポートしていません」 となり、代入出来ないのです。 2つ目のサブフォーム上にあるテキストボックス HMCD が下記3行目のように すると代入できるので、サブフォームの名前を間違えているわけではないと思うのですが...。 他に原因としては何が考えられますか? 下記の3行を同じモジュール内に続けて書いても2行目だけがひっかかるのでもうお手上げ 状態です..。 なんとか助けてください。 お願いします。 strSQL = Forms!FM0020.FS002001.Form.RecordSource strSQL = Forms!FM0020.FS002002.Form.RecordSource strSQL = Forms!FM0020.FS002002!HMCD

専門家に質問してみよう