過去ログ

                                Page      75
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫   
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
 ▼変数の変数の値を取得したい!  しろまる 02/10/24(木) 18:44
   ┣Re:変数の変数の値を取得したい!  しろくろやぎ 02/10/24(木) 19:54
   ┃  ┗Re:変数の変数の値を取得したい!  しろまる 02/10/24(木) 21:01
   ┗Re:Eval 関数  YU-TANG 02/10/24(木) 22:45
      ┗Re:Eval 関数  しろまる 02/10/24(木) 23:30

 ───────────────────────────────────────
 ■題名 : 変数の変数の値を取得したい!
 ■名前 : しろまる
 ■日付 : 02/10/24(木) 18:44
 -------------------------------------------------------------------------
   access2Kでプログラム開発をしています。
初心者で、簡単な質問かもしれませんが、なにとぞよろしくお願い致します。


実現したいことは、変数に対して、変数を入力して(この例では,あるフォームのテキストボックスの値を指定しています)、その「変数の変数」の値を取得したいというものです。

下記の例だと、変数1の値は"[form]![フォーム]![テキスト].value”としか
認識してくれず、"[form]![フォーム]![テキスト].value"自体の値を認識して
くれません。
"[form]![フォーム]![テキスト].value"自体の値を取得したいです。


例.   
sub test()
  dim 変数 as string
  dim A AS string
  変数= "[form]![フォーム]![テキスト].value"
  if 変数 is null then
   msgbox  "フォームのテキストボックスの値はNULLです"
  else
    msgbox  "フォームのテキストボックスの値はNULLではありません"
  endif
endsub

※この例だと、常にフォーム上のテキストボックスの値に関わらず、
変数="[form]![フォーム]![テキスト].valueと認識されてしまいます。

 ───────────────────────────────────────  ■題名 : Re:変数の変数の値を取得したい!  ■名前 : しろくろやぎ  ■日付 : 02/10/24(木) 19:54  -------------------------------------------------------------------------
   ▼しろまる さん:
>初心者で、簡単な質問かもしれませんが、なにとぞよろしくお願い致します。

やっ、結構難しいんじゃないでしょうか?(^_^;)

>下記の例だと、変数1の値は"[form]![フォーム]![テキスト].value”としか
>認識してくれず、"[form]![フォーム]![テキスト].value"自体の値を認識して
>くれません。
>"[form]![フォーム]![テキスト].value"自体の値を取得したいです。

コードは書きませんが、アイディアを。

"[form]![フォーム]![テキスト].value”という文字列が入っている変数から、
文字列操作関数を使って「フォーム名」「コントロール名」を抽出し、その
内容を使う、と可能なはずです。

抽出したフォーム名が「sNmForm」、コントロール名が「sNmCtrl」という
変数に入っており、結果を「sResult」に入れるとすると

 sResult = Forms(sNmForm).Controls(sNmCtrl).Value

で値が取得できるはずです。
# もちろん画面上にフォームが表示されており、そのフォームに該当する
# コントロールがあることが必須ですが。

 ───────────────────────────────────────  ■題名 : Re:変数の変数の値を取得したい!  ■名前 : しろまる  ■日付 : 02/10/24(木) 21:01  -------------------------------------------------------------------------
   しろくろやぎさん

ありがとうございました。
しかしながら、もっとややこしいことに
フォーム上のサブフォーム内のテキストボックスの値を取得したいのが
本当のねらいでした.

ですので、
sResult = Forms(sNmForm).SubForms(subForm).Controls(sNmCtrl).Value
             ^^^^^^^^^^^^^^^^^
              ↑こんな感じ

になるとは思うのですが,思うように行きませんでした。

絶対にこれができないと、開発ができないというレベルではないので
この投稿はここまでで結構です。

ありがとうございました。(涙)

 ───────────────────────────────────────  ■題名 : Re:Eval 関数  ■名前 : YU-TANG <yu-tang@my.tramonline.net>  ■日付 : 02/10/24(木) 22:45  -------------------------------------------------------------------------
   > if 変数 is null then

If IsNull(Eval(変数)) Then

で取れませんか?

 ───────────────────────────────────────  ■題名 : Re:Eval 関数  ■名前 : しろまる  ■日付 : 02/10/24(木) 23:30  -------------------------------------------------------------------------
   ▼YU-TANG さん:
>> if 変数 is null then
>
>If IsNull(Eval(変数)) Then
>
>で取れませんか?

あ!できました!
こんな便利な関数の存在を知らないとは罪ですね。

ありがとうございました!!
今後とも宜しくお願い致します。

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━    通常モードに戻る  ┃  INDEX  ┃  ≪前へ  │  次へ≫    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━                                 Page 75