• ベストアンサー

Access2010 フォーム内のカウントについて

フォームにテキストボックスが16個あり、 S1 S2 S3 … S16 と、それぞれ名前がついております。 それぞれのテキストボックには 0~3 のいずれかの数字が入ります。 この16個のテキストボックスを範囲として、 1:「1」は何個入っているか? 2:「2」または「3」が何個入っているか? をそれぞれ別のテキストボックスに値を返したいと思っています。 Count 関数や DCount 関数を駆使してみましたが、 思うような値が返って来ません。 どのような計算式になるのでしょうか。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • piroin654
  • ベストアンサー率75% (692/917)
回答No.3

>しかし、AA やBB をクリックしないと、結果が反映されないため、 この部分の挙動が少しわからないのですが、フォームの 構造の問題ですかね。 一応、   Me!AA = ans1   Me!BB = ans2 の後にMe.Requeryを追加して、 Me!AA = ans1 Me!BB = ans2 Me.Requery のようにしてみてください。 一応、単票フォームということで回答しています。 もし、何かフォームに込み入った仕掛けがあるならば 補足してみてください。

ryokucha68
質問者

お礼

あれから色々試した結果、全く別の方法で解決してしまいました。 お忙しいところ返答いただきましてありがとうございました。 一応解決したので締め切らせていただきます。

その他の回答 (2)

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.2

No1です。 テキストボックスの数が16なので >For i = 1 To 6 を >For i = 1 To 16 にしてください。

ryokucha68
質問者

お礼

ありがとうございます。 一応目的の結果は出ました。 しかし、AA やBB をクリックしないと、結果が反映されないため、 S1 S2 … S16 のテキストボックスの値が変動した時に連動して AA や BB の値が変わるようにしたいのですが、 どうしたらよろしいでしょうか。 お手数をお掛けしますが、引き続きお願いいたします。

  • piroin654
  • ベストアンサー率75% (692/917)
回答No.1

ベタなコードで。 集計を表示するテキストボックスをAA、BBとします。 ボタンクリックのイベントで、 Private Sub コマンド0_Click()   Dim ans1 As Long   Dim ans2 As Long   Dim i As Long   For i = 1 To 6     If Me.Controls("S" & i) = 1 Then       ans1 = ans1 + 1     End If     If Me.Controls("S" & i) = 2 Then       ans2 = ans2 + 1     End If     If Me.Controls("S" & i) = 3 Then       ans2 = ans2 + 1     End If   Next i   Me!AA = ans1   Me!BB = ans2 End Sub 表示するテキストボックスの名前は実際に合わせて変更 してください。

関連するQ&A

  • アクセスのフォーム上でのカウントについて

    access2003を使用しています。 フォーム上で、A、B、C の3ランクをクエリから抽出して表示させています。 総件数はテキストボックスのコントロールソースに =Count([ランク]) で、表示されるのですが、 ランクごとの小計が =DCount([ランク],"A")では、フォームビューでは「#エラー」と表示されてしまいます。 記述が間違っているのでしょうか?それとも使用できないのでしょうか・・・。同じことをレポートで行おうとしたら、総件数も「#エラー」となってしまいました。 ランクごとの小計の出し方を教えてください。

  • アクセスフォームからのカウント

    下記画像のクエリをもとに集計フォームを作成しました。 そちらのフォームで数字1が入力されている数のカウント、数字2が入力されている数のカウント、数字1、数字2の入っている合計の数をカウントという3つの数字が欲しいのですが、フォームヘッダーにテキストボックスをつくり、コントロールソースに =Count([数字1])  =Count([数字2])等といれますと空欄の欄も数えてくれどちらか一つの情報が入っている全件の数字が出てきます。 どのようにしたら数字1が入力されている数のカウント、数字2が入力されている数のカウント、数字1、数字2の入っている数をカウントという3つの数字がでてきますか?

  • Access2000データのカウントについて

    フォーム上の詳細のところに表示されるクエリのデータの数を、フォームフッターに配置したテキストボックスのコントロールソースに以下の二つのパターンを記入してカウントしようと試みましたが、うまくいきません。以下の例は、今日から30日前までにおけるトレーニング日数をカウントしようとしたつもりです。 どこがまづいのでしょうか?よろしくお願いします。 =DCount("[トレーニング日]",トレーニング・ダイアリー, "Between Date() And (Date()-30)") ないし =DCount("[トレーニング日]",トレーニング・ダイアリー, " > DateAdd( “d”,-30,Date())”) ちなみに =Count([トレーニング日]) については、うまくいきます。

  • アクセスのフォームでテキストボックスを順番に選択

    任意の名前がついたテキストボックスがあります。 これをVBAを使い、1つずつ選択することは可能でしょうか? 例えばエクセルのシートだったら Sheets(1) みたいな感じで数字も使えますが、アクセスのフォームではできないのでしょうか? さらに取得していったテキストボックスの値を取得、ということもしたいです。 Access2000です。

  • アクセス2007のフォームでのカウント

    フォーム上で(東京*はいくつもあります。数値もあって下のように、クエリで表示させるところまでは行きました)たとえば東京*の数値のカウントを 数値1 数値2 数値3 数値4 数値5 19  20  22  21 23 21  22  23   と表示して下の方にテキストボックスで関数をいれてたとえば19の件数をカウントすると カウント 1 になるようにしたいのですが、教えてください。よろしくお願いいたします。

  • [Access]帳票フォームにて連続する非連結コントロールに個々の値を入れるには

    Accessにおいて。 帳票フォームの"詳細"に非連結のコントロール(例:テキストボックス)を配置し、それぞれ別々の値を持たせることは可能なのでしょうか? 例えば。 VBAにおいて、カレントレコードのAという値とBという値を計算し、その値を非連結のテキストボックスに挿入したとします。 単票フォームであれば、問題なくテキストボックスには計算後の値が表示されるわけですが…… 帳票フォームの場合では、"規定値"に計算式を入れたときと同様、先頭の値と同じものが連続するテキストボックスに表示されてしまいます。 これを回避し、計算後のデータを連続するテキストボックスにそれぞれの値として表示させるには、どのようにすればよいのでしょうか? もちろん、連結させたコントロールを使用すれば、問題はないのですが…… 状況によっては、これが行えた方が便利かと思い、質問させていただきます。 「帳票フォームでは不可能である」といった回答でもかまいません。 どうぞよろしくお願いいたします。

  • Dcount関数が表示されない。

    フォームにコンボボックスを作って選んだデータより、フォームの中にテキストボックスを作って、クエリを元にDcount関数を作成しました。 コントロールソースには=DCount("落札金額","○○クエリ","落札金額<>0")として、落札金額が入った数を表示させたいと思っています。 しかし、コンボボックスに値を入力しても、0表示のままなのですが、フォームビューのままコントロールソースをさわったりして、元に戻すと、正しい数字が表示されてきます。また、コンボボックスを選んだ状態からフォームビューをいったんデザインビューにして、またフォームビューに戻すと、正しい数字が表示されています。 文章にするのが難しくてご理解いただけないかもしれませんが、宜しくお願いします。

  • Accessで、フォームからフォームへ値を引き継ぐやり方

    フォームからフォームへ値を引き継ぐやり方を教えて下さい。 たとえば、フォームAのテキストボックスに対して取引先コードを入れるような場合に、 取引先検索専用画面(フォームB)で検索して、選択したレコードのデータをフォームAのテキストボックスに入れたいのです。 心優しい方、宜しくお願いいたします。

  • Accessのフォームで…

    Access 2010のフォームのリストボックスで、あるテーブルのフィールドの値を選択した場合に、同じテーブルの同じレコードにある違うフィールドの値を、テキストボックスに読み込みたいのですが、どうすれば出来ますでしょうか? VBAのサンプルソース等でも構いません。回答お願いしますm(_ _)m

  • ACCESSのフォームで

    2つのことで悩んでいます ACCESSのフォームでテキストボックスに式ビルダで条件を入れたいのですできますか? やりたい事は テキストボックス1     テキストボックス2 1   なら   正解 2   なら   違い   なら    の用に1なら正解、2なら違い 空白なら空白とやりたいのですが()テキストボックス2に式ビルダをいれました) IIF関数だと空白なら空白が成立しないのです VBで言うSELECT CASE のようなものはないのですか? もうひとつはDLookup関数でキーが二つ(たとえばコード1とコード2)で名称を取得するのはかのうですか?途中ANDでつなげたのにうまくいきません よろしくお願いします

専門家に質問してみよう