Private mobjConn As adodb.Connection '数据库连接
Private Sub Form_Load()
'打开数据库连接
  Set mobjConn = New adodb.Connection
  mobjConn.Provider = "Microsoft.Jet.OLEDB.4.0"
    
  If Right(App.Path, "1") = "\" Then
  mobjConn.Open App.Path & "db1.mdb"
  Else
  mobjConn.Open App.Path & "\db1.mdb"
  End If
  Call ReadData
End Sub
Private Function ReadData() As Boolean
  Dim rs As New adodb.Recordset
  Dim i As Long
    
  On Error GoTo ErrorHandler
    
  Grid1.Rows = 1
    
  '从数据库中读取数据
  rs.CursorLocation = adUseClient
  rs.LockType = adLockReadOnly
  rs.CursorType = adOpenStatic
  rs.Open "select sydw,lx,ppxk,znn,mj,xct,bd ,ID from jyh where xct <>'' order by dcbm ", mobjConn
 '从记录集中取得数据
  i = 0
  Do While Not rs.EOF
  i = i + 1
'**************************问题在这里***********************************************
  Combo1.AddItem rs.Fields(“ppxk”).value'弱弱的问一声,当"ppxk"这个字段中有相同数据时,加载到Combo1的数据怎样去除相同项:
例如:"ppxk"字段有以下四条记录:aaa1,aaa1,aaa2,aaa2而我想要的结果是Combo1中只出现:aaa1,aaa2 (因为其它两条是相同的,就没必要出现了),呵呵……不知道我是否表达清楚了?  rs.MoveNext
  Loop
  rs.Close
  Set rs = Nothing
  ReadData = True
  Exit Function
    
ErrorHandler:
  Err.Clear
End Function

解决方案 »

  1.   

    select ppxk from table group by 1 having count(*) = 1
      

  2.   

    如果仅仅是加载ppxk字段,则SQL语句可以这样写:
    rs.Open "select distinct ppxk from jyh where xct <>'' order by dcbm ", mobjConn
      

  3.   

    不知道楼主SQL语句中的其他字段是否需要。如果需要,就不能在SQL语句级别上进行去除重复的操作了。
    需要写程序来判断Combo控件中是否已经有重复值,如果有,就不添加。