• 締切済み

アクセスにてカウントさせたいです

フォームでカウントさせたいのですが、どのようにすればよろしいでしょうか? カウントさせたいのが下記の様なパターンです。 10 10 11 21 21 21 30 31 カウント 5 としたいのです。10は2個ありますが1とカウント 21も3個ありますが1とカウントです よろしくご教授願います

みんなの回答

noname#140971
noname#140971
回答No.7

質問と回答の関係を明らかにするため一連の回答をしました。 1、非連結フォームで何らかのアルゴリズムの練習だと想定して・・・。(No.2) 2、連結フォームであると想定して・・・。(No.4) <No.2> 数字が昇順に並ぶという前提が崩れれば回答No2は無意味です。 順次文字列に 10,11 と新規データをアペンドしてから配列に取り込む。 この場合、配列の大きさ+1=カウント値という訳です。 こういう小手先のテクニックが浮上してきます。 いずれにしろ、なぜ、昇順で質問がされているのか疑問に思うところです。 <No.4> が、連結フォームであれば、SQL文の出番です。 この場合、フォームに配置しているコントロールにSQL文を仕組む。 あるいは、Form_Current() で SQL文の実行関数でカウントする。 あるいは、コマンドボタンでカウントする。 などの手法が考えられます。 ・参照データのカウント ・入力データのカウント というカウントの目的で手法が決まってくるでしょう。 いずれにしろ、質問文では情報が少なすぎます。 そして、どこで行き詰っているのかが判りません。 これまでの補足要求に加えて、ここら辺りも補足されたらと感じた次第です。

noname#140971
noname#140971
回答No.6

Husky2007です。 DISTINCT でした。 どうも、DISTINCT を使うのをすぐ忘れます。 一応、誤答と同じですので訂正しておきます。 フォームに関しては、重複回答になるので差し控えます。

回答No.5

>フォーム内にあるテキストボックスにあるデータ とのことですがもしテキストボックスがいくつもあるなら そのテキストの名前の付け方を、 もしひとつのテキストボックスにつらつらとデータが入っているなら カンマ区切りなのかスペース区切りなのか等を教えてください。 (簡単なのはテーブルに登録してHusky2007さんが解答してる様に SQL文(自分ならDISTINCTを使いますが)を走らせる方法だと思いますよ。)

noname#140971
noname#140971
回答No.4

? DBLookup("SELECT COUNT(*) FROM (SELECT A FROM TABLE1 GROUP BY A)") 3 <Table1> ID__A 0___20 0___30 1___10 2___10 3___20 もしかして・・・こういう答えを。

回答No.3

>フォームでカウント とは、『DBにあるデータをカウントする』のか 『フォームのテキストボックス等にあるデータをカウントする』のかどちらでしょう??

a32
質問者

補足

すみません 説明不足でした。 フォーム内にあるテキストボックスにあるデータになります。 よろしくお願いいたします

noname#140971
noname#140971
回答No.2

Private Sub コマンド0_Click()   Dim I  As Integer   Dim J  As Integer   Dim N  As Integer   Dim M  As Integer   Dim C  As Integer   Dim Q() As String      Q() = Split("10,10,11,21,21,21,30,31", ",")   N = UBound(Q()) - 1   M = N + 1   C = 1   For I = 0 To N     For J = I + 1 To M       If (Q(I) <> Q(J)) Then         C = C + 1         I = J - 1         Exit For       End If     Next J   Next I   Debug.Print C End Sub C=1 10<>11--->C=2 11<>21--->C=3 21<>30--->C=4 30<>21--->C=5 無事、これで 5 という結果を得れます。

  • nakax
  • ベストアンサー率13% (15/114)
回答No.1

プログラム? SQLで? と言いますか、MSのAccessですよね?

a32
質問者

補足

MSのACCESSです 簡単な方法でお願いいたします。お手数お掛けします

関連するQ&A