- 締切済み
アクセスにてカウントさせたいです
フォームでカウントさせたいのですが、どのようにすればよろしいでしょうか? カウントさせたいのが下記の様なパターンです。 10 10 11 21 21 21 30 31 カウント 5 としたいのです。10は2個ありますが1とカウント 21も3個ありますが1とカウントです よろしくご教授願います
- みんなの回答 (7)
- 専門家の回答
みんなの回答
質問と回答の関係を明らかにするため一連の回答をしました。 1、非連結フォームで何らかのアルゴリズムの練習だと想定して・・・。(No.2) 2、連結フォームであると想定して・・・。(No.4) <No.2> 数字が昇順に並ぶという前提が崩れれば回答No2は無意味です。 順次文字列に 10,11 と新規データをアペンドしてから配列に取り込む。 この場合、配列の大きさ+1=カウント値という訳です。 こういう小手先のテクニックが浮上してきます。 いずれにしろ、なぜ、昇順で質問がされているのか疑問に思うところです。 <No.4> が、連結フォームであれば、SQL文の出番です。 この場合、フォームに配置しているコントロールにSQL文を仕組む。 あるいは、Form_Current() で SQL文の実行関数でカウントする。 あるいは、コマンドボタンでカウントする。 などの手法が考えられます。 ・参照データのカウント ・入力データのカウント というカウントの目的で手法が決まってくるでしょう。 いずれにしろ、質問文では情報が少なすぎます。 そして、どこで行き詰っているのかが判りません。 これまでの補足要求に加えて、ここら辺りも補足されたらと感じた次第です。
Husky2007です。 DISTINCT でした。 どうも、DISTINCT を使うのをすぐ忘れます。 一応、誤答と同じですので訂正しておきます。 フォームに関しては、重複回答になるので差し控えます。
- CHIPDALE77
- ベストアンサー率21% (47/223)
>フォーム内にあるテキストボックスにあるデータ とのことですがもしテキストボックスがいくつもあるなら そのテキストの名前の付け方を、 もしひとつのテキストボックスにつらつらとデータが入っているなら カンマ区切りなのかスペース区切りなのか等を教えてください。 (簡単なのはテーブルに登録してHusky2007さんが解答してる様に SQL文(自分ならDISTINCTを使いますが)を走らせる方法だと思いますよ。)
? 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 もしかして・・・こういう答えを。
- CHIPDALE77
- ベストアンサー率21% (47/223)
>フォームでカウント とは、『DBにあるデータをカウントする』のか 『フォームのテキストボックス等にあるデータをカウントする』のかどちらでしょう??
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)
プログラム? SQLで? と言いますか、MSのAccessですよね?
補足
MSのACCESSです 簡単な方法でお願いいたします。お手数お掛けします
補足
すみません 説明不足でした。 フォーム内にあるテキストボックスにあるデータになります。 よろしくお願いいたします