プロが教える店舗&オフィスのセキュリティ対策術

Dcountを使っています。
DCount("[aa]", "[T_b]", "[a] = [a2] AND [b] = [b2] ")
というような感じで条件をあてはめていますが、Controlsと変数を使用した条件がうまくいきません。

[vv] = me.controls(v)

としてみました。
でもエラーになってしまいます。
me.controls(v)を変数に代入してみましたが、変数でもダメでした。

どのように記述すればいいのでしょうか?

A 回答 (2件)

例えば、テキストボックスの名前が、


Text1、Text2・・・
という風なら、


For i = 1 To 10

  ret = DCount("[aa]", "[T_b]", "[vv] = " & Me.Controls("Text" & i))
  ・・・

Next i


という風になります。
Controlsの引数は、インデックス値か、コントロール名の"文字列"なので、数値で変化する部分を繋げます。

それから、DCount関数の引数は3つとも"文字列"なので、

[vv] = Me.Controls("Text" & i)

ではダメで、

"[vv] = " & Me.Controls("Text" & i)

と文字列として繋げる形にしなければいけません。

[vv]にMe.Controls(略)を代入するという意味ではなくて、
"[vv] = "と、Me.Controls(略)を文字列として繋げるということです。
    • good
    • 0

こんにちは。

maruru01です。

>me.controls(v)
「v」はコントロール名でしょうか。それともインデックス番号でしょうか。
コントロール名なら、

Me.Controls("v")

と""で括る必要があります。
でも、普通に、

Me!テキスト1

とすればいいような気がしますが。
あと、コントロールの値を条件文字列に入れる場合は、直接なら、

DCount("[aa]", "[T_b]", "[vv] = '" & Me!テキスト1.Value & "'")

とします。
なお、フィールド[vv]が数値型なら、「''」は不要なので、

DCount("[aa]", "[T_b]", "[vv] = " & Me!テキスト1.Value)

とします。

変数にいったん格納するなら、

Dim temp As String

temp = Me!テキスト1.Value
DCount("[aa]", "[T_b]", "[vv] = '" & temp & "'")

という感じです。

この回答への補足

for w 1 to 37
DayDate = Me.Controls(w).value
  :
  :
next

のようにすると、エラーが出てしまいます。
forで使用している変数名をControlsで指定することはできないのでしょうか?

補足日時:2003/07/31 12:42
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
forで変数を変更させて作業を行わせようとしているので、直接指定だと大変なんです。

Dcount(…(これまで条件が入ってます。)AND [vv] = me.controls("v")")

としてみましたが、エラーになってしまいました。
(作業前に文字が赤くなってる状態です)
どこがダメなのでしょうか?

お礼日時:2003/07/31 12:32

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A