本人刚学VB,遇到个问题请大家赐教。表aaa里的字段fzr的记录有a、a、b、a、c、c、a(此表并非只有fzr字段)
我想把fzr字段的值添加到combo1里去,但不能出现重复。最后得到的结果应是combo1里只有a、b、c
不能用sql语句把重复值屏蔽掉,全用代码判断实现。
我用的data控件。由于刚接触VB,对数据库操作所用的属性和方法知道的不多,所以请大家帮忙, 谢谢!
我想把fzr字段的值添加到combo1里去,但不能出现重复。最后得到的结果应是combo1里只有a、b、c
不能用sql语句把重复值屏蔽掉,全用代码判断实现。
我用的data控件。由于刚接触VB,对数据库操作所用的属性和方法知道的不多,所以请大家帮忙, 谢谢!
Dim strSql As String
If rsClass.State Then rsClass.Close
strSql = "SELECT distinct fzr FROM aaa "
rsClass.Open strSql, Cn, adOpenStatic, adLockReadOnly
With CmbName
.Clear
Dim n As Integer
n = 0
Do While Not rsClass.EOF
.AddItem Trim(rsClass!Description)
.ItemData(n) = Trim(rsClass!Code)
n = n + 1
rsClass.MoveNext
Loop
.ListIndex = 0
End With
End Sub
用data控件好实现吗 如果好实现麻烦你再写个例子 谢谢
我是想问不用SQL语句屏蔽重复值,单纯地自己写代码控制添加怎么写?
Dim a, b, c As Integer
a = 0
b = 0
c = 0
Do While Not Me.Data1.Recordset.EOF
Select Case Me.Data1.Recordset.Fields("fzr").Value
Case "a"
For i = 0 To Me.Combo1.ListCount - 1
If Me.Combo1.List(i) = "a" Then
a = a + 1
End If
Next i
If a = 0 Then
Me.Combo1.AddItem "a"
End If
a = 0
Case "b"
For i = 0 To Me.Combo1.ListCount - 1
If Me.Combo1.List(i) = "b" Then
b = b + 1
End If
Next i
If b = 0 Then
Me.Combo1.AddItem "b"
End If
b = 0
Case "c"
For i = 0 To Me.Combo1.ListCount - 1
If Me.Combo1.List(i) = "c" Then
c = c + 1
End If
Next i
If c = 0 Then
Me.Combo1.AddItem "c"
End If
c = 0
End Select
Me.Data1.Recordset.MoveNext
Loop
End SubPrivate Sub Form_Load()
Me.Data1.DatabaseName = app.path & "\db1.mdb"
Me.Data1.RecordSource = "aaa"
End Sub
我是想问不用SQL语句屏蔽重复值,单纯地自己写代码控制添加怎么写?舍近求远!
但是它有局限性,这样写是已经知道了表里都有哪些值,在不知道的情况下呢?
拿到一张新表,并不知道里面的字段都有什么值,然后添加到combo里。
.DatabaseName = "d:\db1.mdb"
.RecordSource = "select * from pgd"
.Refresh
End With
Data1.Recordset.MoveLast
i = Data1.Recordset.RecordCount
Data1.Recordset.MoveFirst
m = Data1.Recordset.Fields("fzr")
Combo1.AddItem (m)
Data1.Recordset.MoveNext
i = i - 1
For j = 1 To i
m = Data1.Recordset.Fields("fzr")
v = Combo1.ListCount
x = 0
Do While (v > 0)
If m = Combo1.List(v - 1) Then
x = 0
Exit Do
Else
x = 1
End If
v = v - 1
Loop
If Not Data1.Recordset.EOF Then
Data1.Recordset.Move (1)
End If
If (x = 1) Then
Combo1.AddItem (m)
End If
Next j