Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

サブフォーム内のテキストボックス の指定方法

3,436 views
Skip to first unread message

ishi99

unread,
Nov 29, 2001, 12:42:24 PM11/29/01
to
まずは変数定義。
dim ctrlTextBox1 as Control


サブフォーム内にあるテキストボックスをダブルクリックしたときに

set ctrlTextBox1 = Forms!サブフォーム内のテキストボックス

としたいんですが、「Forms!」以降の記述方法がわかりません。
どなたかご存じでしょうか…?

Yoichi Yoshimura

unread,
Nov 29, 2001, 6:57:45 PM11/29/01
to
"ishi99" <ish...@geocities.co.jp> wrote in message
news:#0bSd1PeBHA.1456@tkmsftngp04...

テキストボックスの名前を「テキストボックス1」、
このテキストボックスがあるフォームの名前を「フォーム1」
にした場合は、以下の様になります。

Dim ctrlTextBox1 As Control
Set ctrlTextBox1 = Forms![フォーム1].テキストボックス1

Yoichi Yoshimura


YAMAMOTO Takao

unread,
Nov 30, 2001, 1:28:12 AM11/30/01
to
サブフォームの Form プロパティから辿れます。
Set ctrlTextBox1 = Forms!Form1!Child1.Form!Text0

takao


ishi99

unread,
Nov 30, 2001, 11:07:40 AM11/30/01
to
Yoichi Yoshimura 様
YAMAMOTO Takao 様

レスありがとうございます。
お二方から教えていただいた記述方法を用いても

 実行時エラー '2450':
 マクロの式または Visual Basic コードで参照されている'[サブフォーム名]'フォ
 ームが見つかりません。

と表示され、うまくいきません。

当方の状況をもう一度申しますと…
・テーブルと連結されたサブフォーム(帳票フォーム)を作成。
・テーブルの「日付」フィールドと連結されたテキストボックス(コントロール名
「入力日」)をサブフォーム内に配置。
・テキストボックス(「入力日」)のイベント(クリック時)に、
   set ctrl = テキストボックス(「入力日」)   'ctrl→コントロール型
   と指定したい。

以上です。
つたない文章で申し訳ありませんが、私のVBA記述方法が悪いんでしょうか…


pino

unread,
Nov 30, 2001, 7:48:17 PM11/30/01
to
こんにちは

set ctrlTextBox1 = Forms![メインフォーム名]![サブフォーム名].form![テキスト
ボックス名]
でどうでしょう!

     ぴの

Inoue Masahiko

unread,
Nov 30, 2001, 10:52:14 PM11/30/01
to

これ変数の宣言はどこでやってます? プロシージャ内かサブフォームの宣言部
でやっているのなら、

Set ctrlTextBox1 = Me.テキストボックスの名前

で OK です。

--
-=-=-=-=-=-=-=-=-=-=-
井上 祐彦
masa...@hotmail.com
-=-=-=-=-=-=-=-=-=-=-


ishi99

unread,
Dec 1, 2001, 3:46:17 PM12/1/01
to
> これ変数の宣言はどこでやってます? プロシージャ内かサブフォームの宣言部
>でやっているのなら、
>
>Set ctrlTextBox1 = Me.テキストボックスの名前
>
>で OK です。

To 井上様
モジュールを追加してパブリック変数として宣言してますので、プロジェクト全体か
ら見渡せる変数です。

Inoue Masahiko

unread,
Dec 2, 2001, 2:07:32 AM12/2/01
to
> モジュールを追加してパブリック変数として宣言してますので、プロジェクト
> 全体から見渡せる変数です。

??? でも最初の投稿では Public じゃなくて Dim で宣言されてますけど?

すると、実際は

Public ctrlTextBox1 as Control

となっているのに、サブフォームのテキストボックスの DblClick イベントで

Set ctrlTextBox1 = Me.テキストボックスの名前

としてもエラーになるということでしょうか?

では、とりあえず ctrlTextBox1 と Me.テキストボックスの名前 をウォッチし
て、イベントハンドラのエントリ直後でブレークしてみてください。多分どちらかが
対象範囲外になっていると思うのですが。

ishi99

unread,
Dec 4, 2001, 8:52:59 AM12/4/01
to
To Inoue Masahiko様
解決しました(とりあえず結論から)。

前回のInoue様のレス内容から…


> これ変数の宣言はどこでやってます? プロシージャ内かサブフォームの宣言部
>でやっているのなら、
>
>Set ctrlTextBox1 = Me.テキストボックスの名前
>
>で OK です。

変数の宣言ばかりに目がいってて、「Me.テキストボックスの名前」
という部分を試さずにおりました。
みなさま大変ありがとうございました。

PS. Meを使わない方法ってあるんですかねぇ、まだまだ勉強ですね(._.)φ

Inoue Masahiko

unread,
Dec 4, 2001, 11:58:41 PM12/4/01
to
> PS. Meを使わない方法ってあるんですかねぇ、
> まだまだ勉強ですね(._.)φ

フルに指定したいのなら、

Forms!親フォーム.サブフォーム.Controls("コントロール名")

フォーム名は何段階つなげても OK です。でも親フォームの名前が変わったり、別の
親フォームに違う名前で埋め込んであるときに動かなくなるので、普通はこうやって
指定するのは 「他のフォームからコントロールを指定するとき」 ですね。

0 new messages