下面代码之中怎样去掉查询的重复记录
Adodc1.RecordSource = "select * from 数据表 "
Adodc1.Refresh
If Adodc1.Recordset.RecordCount = 0 Then Exit Sub
 For i = 0 To Adodc1.Recordset.RecordCount - 1
 Combo1.AddItem Adodc1.Recordset.Fields(0).Value
 Adodc1.Recordset.MoveNext
  Next
On Error Resume Next

解决方案 »

  1.   

    SELECT DISTINCTROW 数据表.*
    FROM 数据表;
      

  2.   

    SELECT DISTINCT 字段 FROM 数据表
      

  3.   

    方法一:采用你的原有思路Private Declare Function SendMessagebyString Lib _
    "user32" Alias "SendMessageA" (ByVal hWND As Long, _
    ByVal wMsg As Long, ByVal wParam As Long, _
    ByVal lParam As String) As LongPrivate Const CB_FINDSTRINGEXACT = &H158    '在 ComboBox 中精确查找Adodc1.RecordSource = "select * from 数据表 "
    Adodc1.RefreshDo Until Adodc1.Recordset.EOF
     If SendMessagebyString(Combo1.hWnd, CB_FINDSTRINGEXACT, -1, Adodc1.Recordset.Fields(0)) = -1 Then
      Combo1.AddItem Adodc1.Recordset.Fields(0).Value
      Adodc1.Recordset.MoveNext
     End If
    Loop
      

  4.   

    方法二:在查询时去掉重复(如果仅仅是用来填充 Combo 的话,原来也不必 Select * 取回所有字段)。Adodc1.RecordSource = "select DISTINCT 字段名 from 数据表 "
    Adodc1.RefreshDo Until Adodc1.Recordset.EOF
     Combo1.AddItem Adodc1.Recordset.Fields(0).Value
     Adodc1.Recordset.MoveNext
    Loop