アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめまして、宜しくお願いします。

Access2002とSQLサーバーをつかってタイトルに書いたようなことを
やろうと思っています。



やっていることは
まずテキストコントロールを5個(名前:text1~text5)用意して、それらを全て
非表示(.visible = false)にしておきます。

その後「任意の数」をDBからとって来て、その数だけテキストボックスを
表示させたいと思っています。
任意の数が「3」のときはテキストボックスを3つだけ表示させ、任意の数が「5」
のときはテキストボックスを5つ表示したいと思っています。

eval関数を見つけたのでそれを使って下記のように記述しましたが
evalがコントロール名の「text」を認識してくれず、エラーとなってしまいます。

ヘルプを見てみると、
eval関数は、
「評価しようとする変数の中でさらに変数を使っている場合、そこまで評価できない」

というようなことは書いてあったのですが、
この場合コントロール名なのでなぜ認識してくれないのか分からず、
行き詰っております。

それとも、このような処理はできないのでしょうか。


Dim CNT AS Integer:CNT = 0
Dim a AS String

Do While cnt < 任意の数
   CNT = CNT + 1
   a = "text" & CNT & ".Visible = True"
   Eval (a)
Loop


基本的なことで間違えているのかもしれませんが、
お気づきの方が居られましたらご教授ください。

宜しくお願いします。

A 回答 (2件)

ヘルプに書いてある Value プロパティの値を設定する例を見るとこうですかね?



Dim CNT AS Integer:CNT = 0
Dim a AS String

Do While cnt < 任意の数
   CNT = CNT + 1
   Eval("text" & CNT).Visible = True
Loop

Evalでテキストボックスの参照を返してもらって、そのVisibleプロパティに値をセットしています。
    • good
    • 0
この回答へのお礼

早速のレスありがとうございます。
お礼がおくれて申し訳ございません。
土、日に見れなかったもので、、。


taka_tetsuさんの言うとおりやってみたのですが、
やはりEval関数を使うと「text1が見つかりません」という
エラーが出てしまいます。
変数名は解決してくれるのですが、コントロール名はだめなのか?
と思いました。

この方法ではうまくいきませんでしたが、わざわざのご回答、
ありがとうございます!

お礼日時:2002/08/19 13:42

特に Eval 関数を用いなくとも、



 Me("text" & CNT).Visible = True

とすることで可能です。
    • good
    • 0
この回答へのお礼

早速のレスありがとうございます。
お礼がおくれて申し訳ございません。
土、日に見れなかったもので、、。

x89さんの言う通りやってみましたがうまくできました。
自分では思いつきませんでした。
ありがとうございます!

お礼日時:2002/08/19 13:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!