こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

転記したフォーム、レポートのレコードソース、標題をVBAで変更したいんです。

テーブル名、フォーム名、レポート名の3つのフィールドが一覧となっているテーブル「オブジェクト名」があるとします。

○例「オブジェクト名」テーブル
テーブル名  フォーム名  レポート名
T_ああ      F_ああ    R_ああ
T_いい      F_いい    R_いい

まず、Excelからインポートしたテーブル名を、上の一覧中のテーブル名「T_ああ」をインプットボックスでまず割り当てておきます。
割り当てた値は「varac」とします。

また、フォーム「オブジェクト作成」に、「フォーム作成」、「レポート作成」というコマンドボタンを作り、TransferDataBaseメソッドを利用し、フォーム、レポートを、既にあるそれぞれ元となるオブジェクトから転記していきます。

その際、それぞれの名称は、DLookUp関数を使い、「varac」を元にして「オブジェクト名」テーブルからフォーム名、レポート名を引っ張ってきます。
ここまでは順調に出来ました。
さらに値「varac」を利用して、フォーム、レポートのレコードソース、標題を変更したいんです。

でも、どうコーディングしたら全体プロパティのレコードソース、標題が変わってくれるのか分かりません。
一つのフォームのレコードソースや標題を変えるのなら、
Me.RecordSource = varacや、Me.Caption = varacにすれば変更できます。
ただ、転記中にフォーム「オブジェクト作成」からどう指示したら、転記先のフォーム上のプロパティ、または転記先のレポート上のプロパティと、認識してくれるのかまったく分かりません。

初心者でもあるため、コーディングに詳しいコメントをしていただくと、とても嬉しいです。
よろしくお願い致します。

投稿日時 - 2004-06-15 00:50:24

QNo.892624

困ってます

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

> 転記中にフォーム「オブジェクト作成」からどう指示したら、転記先の
> フォーム上のプロパティ、または転記先のレポート上のプロパティと、
> 認識してくれるのかまったく分かりません。

  Dim strName As String
  strName = "フォーム名"
  
  DoCmd.OpenForm strName, acDesign
  With Forms(strName)
    .RecordSource = varac
    .Caption = varac
  End With
  
  DoCmd.Close acForm, strName, acSaveYes

こんなことでしょうか?

> コーディングに詳しいコメントをしていただくと
難しいことは、何もしていないです。
ただ、デザインビューで開き、プロパティをセット。
で、保存して閉じているだけです。
別フォームの参照方法がわからなかったということですよね?

投稿日時 - 2004-06-15 08:31:16

お礼

Gin_Fさま、回答ありがとうございます。

>こんなことでしょうか?

こんなことです!
出来ました!
私のやりたいことそのもののお答えでしたよ。

今はAccess、VBA両方お勉強中で深みにはまってるところです。
これでまた一つお勉強になりました。
どうもありがとうございました。

投稿日時 - 2004-06-15 20:56:27

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

結論から言うと、
無理です。

なぜなら、
フォームオブジェクトや、
レポートオブジェクトというのは
VBAではなく、
VBE(Visual Basic Editer)が
制御しているからです。

VB6.0などで、
コーディングアドインを作成しない限り、
不可能です。

投稿日時 - 2004-06-15 03:45:58

あなたにオススメの質問