首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

Combo控件加载数据有关问题(应该不算难)

2012-03-09 
Combo控件加载数据问题(应该不算难)Private mobjConn As adodb.Connection 数据库连接Private Sub Form_L

Combo控件加载数据问题(应该不算难)
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



[解决办法]
select ppxk from table group by 1 having count(*) = 1
[解决办法]
如果仅仅是加载ppxk字段,则SQL语句可以这样写:
rs.Open "select distinct ppxk from jyh where xct <>'' order by dcbm ", mobjConn
[解决办法]
不知道楼主SQL语句中的其他字段是否需要。如果需要,就不能在SQL语句级别上进行去除重复的操作了。
需要写程序来判断Combo控件中是否已经有重复值,如果有,就不添加。

热点排行