统计数组中相同记录的个数??
1、如果数组中的某个元素小于bl,则读出该元素指定的字段记录。
2、统计符合条件的字段记录相同的个数,结果输出到text1.text,text2.text中。
Dim bl,i,o As Integer
bl = (x1+x2+x3+x4+x5+x6+x7+x8+x9+x10) \ 10
i = Array(x1,x2,x3,x4,x5,x6,x7,x8,x9,x10)
For o = LBound(i) To UBound(i)
If i(o) < bl Then
'这里不会写
Next o
数据参考,例如:
x1=1,x2=2,x3=3,x4=4,x5=5,x6=6,x7=7,x8=8,x9=9,x10=10。
元素指定的字段记录:
x1为第一百零一条记录,x2为第一百零二条记录,
x3为第一百零三条记录,x4为第一百零四条记录,
x5为第一百零五条记录,x6为第一百零六条记录,
x7为第一百零七条记录,x8为第一百零八条记录,
x9为第一百零九条记录,x10为第一百一十条记录。
数据表:
ID 字段1
101 1
102 2
103 2
104 1
105 2
106 1
107 1
108 2
109 2
110 2
[解决办法]
- VB code
Dim cnn As New ADODB.ConnectionDim rst As New ADODB.RecordsetPrivate Sub Command1_Click() Dim bl, i, o As Integer X1 = 1: X2 = 2: x3 = 3: x4 = 4: x5 = 5: x6 = 6: x7 = 7: x8 = 8: x9 = 9: x10 = 10 bl = (X1 + X2 + x3 + x4 + x5 + x6 + x7 + x8 + x9 + x10) \ 10 i = Array(X1, X2, x3, x4, x5, x6, x7, x8, x9, x10) For o = 0 To UBound(i) If i(o) < bl Then icount = icount + 1 End If Text1.Text = icount Next o If cnn.State = 1 Then cnn.Close cnn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Administrator\My Documents\db26.mdb;Persist Security Info=False" cnn.CursorLocation = adUseClient cnn.Open sql = "SELECT hhh.字段1,Count(hhh.字段1) as a From hhh Where (((hhh.ID) >= 101 And (hhh.ID) <=" & (100 + icount) & ")) GROUP BY hhh.字段1" Set rst = cnn.Execute(sql) Text2.Text = "" While Not rst.EOF If rst(1) > 1 Then Text2.Text = Text2.Text & "字段1值为" & rst(0) & "有" & rst(1) & "条 " End If rst.MoveNext WendEnd Sub