• 締切済み

Access・VBAで、Controlsを使用した条件式(書き方)

Dcountを使っています。 DCount("[aa]", "[T_b]", "[a] = [a2] AND [b] = [b2] ") というような感じで条件をあてはめていますが、Controlsと変数を使用した条件がうまくいきません。 [vv] = me.controls(v) としてみました。 でもエラーになってしまいます。 me.controls(v)を変数に代入してみましたが、変数でもダメでした。 どのように記述すればいいのでしょうか?

みんなの回答

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.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(略)を文字列として繋げるということです。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。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 & "'") という感じです。

KODAMAR
質問者

お礼

回答ありがとうございます。 forで変数を変更させて作業を行わせようとしているので、直接指定だと大変なんです。 Dcount(…(これまで条件が入ってます。)AND [vv] = me.controls("v")") としてみましたが、エラーになってしまいました。 (作業前に文字が赤くなってる状態です) どこがダメなのでしょうか?

KODAMAR
質問者

補足

for w 1 to 37 DayDate = Me.Controls(w).value   :   : next のようにすると、エラーが出てしまいます。 forで使用している変数名をControlsで指定することはできないのでしょうか?

関連するQ&A

  • ifの条件式 Andを使用するものについて

    phpで、 $a="あいうえお"; $b="かきくけこ"; $c="かきくけこ"; と変数を三つ宣言しました。 上の変数三つを利用して、以下条件のif文を作りたいと思いました。  条件:$a変数 と $b変数が異なり、かつ $b変数 と $c変数の内容が同じとき「処理A」を実行させる。 ○作成したif文 if(($a <> $b) && ($b == $c)){  処理A } と記述したのですが、 ifブロック処理Aが実行されません。 なぜなのでしょうか…。 ご教授お願いします。

    • ベストアンサー
    • PHP
  • Access2003 様々な検索条件の書き方

    Access2003にてDCount関数を利用しようとしています。 条件が数字型や文字列型の場合それぞれに書き方が変わるのは分かるのですが、変数に入れてさらに複合条件にするとどのように書けばいいのか分かりません。 Table1 [ID]文字列 [Bangou]数値 [Answer] 変数A 文字列 変数B 数値 とあった場合、 「テーブル1からIDが変数AでかつBangouがBのAnswerをカウント」したいのですが DCount("Answer", "Table1", "[ID] = '" & A & "' And [Bangou] = " & B 上記の書き方だと第三因数がNullになってしまいカウント出来ません。 「"]と「'」の使い方が分かりません。 どなたがご教授お願い致します。

  • Access-VBAのPublic変数について =基本的な事です=

    フォームAのテキストボックスに入力された値をフォームBで使用したいのですが、調べるとPublic変数に値を代入しておけばフォームAを閉じても値を保持できるとの事でした。 そこで、 (1) 標準モジュール(My_Moduleという名前)を作成しそこに1行Public Hensu as Long と定義しました。 (2) フォームAにボタンを作成し、そのクリックイベントに、 Hensu=Text1.Value というコードを記述しました。 (3) フォームBにボタンを作成し、そのクリックイベントに、 Text1.Value=Hensu というコードを記述しました。 フォームBのボタンをクリックすると、Text1に値が代入されるかと思いましたが、意に反しHensuの中身はNullでした。 どのようにすればフォームBで変数の値を取得することが出来るのでしょうか? ちなみにフォームAからPublic Hensuには値が代入されているようで、イミディトウインドウで?Hensuとするとちゃんと代入された値が表示されます。

  • VBAにて変数をコントロール名として使用する方法

    Access2002、VBAにて Me.txtテキストなどのようにコントロール名を指定しますが この「txtテキスト」の部分を変数を使って コントロールの指定を行うにはどのように記述すればよいでしょうか。 Dim test as variant test = "txtテキスト" Me.test のように・・・(上は適当です、すみません)

  • 運動の法則 条件を求める。

    よろしくお願い致します。高校物理の問題です。 問題 『図の説明』 図は、机の上に物体Bが置いてあり、その上の左端に物体Aが乗っています。物体Aの右側には糸がくっついていて、滑車をつたって、物体Cがぶら下がっています。 『問題文』 図のように質量m,長さLの台Bの左端に質量mの物体Aをのせた。 Bには糸と滑車を介して質量mの物体Cがつながれている。AB間には摩擦力が働き、動摩擦係数はμ’である。Bと床の間には摩擦はない。 時刻t=0で図の位置からAを初速度v0で滑らせると同時に、Cを静かに放した。重力加速度の大きさをg、矢印の向きを正として以下の問に答えよ。Aの大きさは無視してよい。糸はたるむことはない。 4)AがBに対して静止する時刻t0はいくらか? 5)AがB上から落ちないv0の条件を求めよ。 私がわからないのは問5です。相対で考えました。 Bの加速度をa, Aの加速度をaAとすると、 Bから見たAの相対初速度はv0、 相対加速度は、aA-a=-u’g-(u’+1)g/2で、 式は、2ax=v0t+1/2at^2 を使って、x=L, a=-u’g-(u’+1)g/2, v0=v0を代入しました。 ですが、解説をみると、L≧v0t0+1/2(aA-a)t0^2 となっていました。 私の式と異なるのは左辺です。 私は公式どおり、2aLとしたのですが、 解説では、Lとなっていました。 よって、答えも間違っていたのですが、これはどうしてでしょうk? 使う公式を間違えているのでしょうか? どうして、左辺がL≧になるのかわかりません。 基本的なところかもしれませんが、よろしくお願い致します。

  • クエリで不等号を含んだ条件式を使いたい。

    Access2000で質問です。 クエリの抽出条件のところでifを使った条件式をいれたいのですが、ここに不等号(<,>など)を使うにはどのような記述をすれば良いのでしょうか? 具体的には、「iif[form名]![コントロール名]=XX,"AA",>[form名]![BBコード]」..みたいな使い方をしたいのですが。正しい記述法を伝授下さい。

  • 条件に合ったデータを抜き出す

      A   B   C   D 1 あ   AA   VV   FF 2 い   CC   FF   HH 3 あ   SS   FF   DD 4 う   SS   EE   AA 以上のようなデータが有るときに、別シートに A列のデータを条件に以下のように抜き出したいのです。 別シートの各セルに式が入っていて、上記データを 変更しても別シートの抽出結果が自動で変わるようにしたいです。 ”あ”の抽出   あ   AA   VV   FF   あ   SS   FF   DD ”い”の抽出   い   CC   FF   HH ”う”の抽出   う   SS   EE   AA

  • perl のif文(条件式)内に代入式は使えない?

    例えば、$a =1 という代入式を、if 文の条件式として、( $a = 1){ } とするとエラーが出ますが、代入式はif文の条件式として使えないのですか?

    • ベストアンサー
    • Perl
  • 多数の条件式

    OR関数の条件式で多数のセルと値を比較する場合、 OR(A1<B1,A1<B2,A1<B3,A1<B4,A1<B5,・・)と記述していますがこれを OR(A1<(B1:B30)(←この記述は使えませんが、、)などのように簡略化した表記はできませんでしょうか?

  • VBAのMsgBoxについて

    例えばA1のセルに「変数に代入されている数は10です。」と表示させるためには Cells(1,1)="変数に代入されている数は" &n& "です" とすれば変数nに代入されている数が表示されるはずですが、MsgBoxに同じように表示させるにはどうすればよいのでしょうか。 MsgBox "変数に代入されている数は" &n& "です" としてもエラーになってしまうのですが、、、

専門家に質問してみよう