Public Function BindDataToCombox(ByVal strSql As String, comBox As ComboBox) As Boolean 'objCon是Connection对象 Dim objRs As ADODB.Recordset Set objRs = objCon.Execute(strSql) If objRs.EOF = False Then comBox.Clear BindDataToCombox = True Else BindDataToCombox = False Exit Function End If Do Until objRs.EOF = True comBox.AddItem objRs.Fields(0).value objRs.MoveNext Loop End Function
不要用Unload Form 用 Form.Visable=False Form.Visable=True
Private Sub Form_Load() Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset dim sql as new string 'dbname为数据库名称,sqlserver为数据库服务器名称 cn.Open "Provider=SQLOLEDB.1;Password=1;Persist Security Info=True;User ID=sa;Initial Catalog= dbname Data Source=sqlserver" sql = "select * from database where id<=10"rs.Open sql, cn, adOpenStatic, adLockOptimistic Combo1.Clear While Not rs.EOF Combo1.AddItem rs.Fields!Name Combo1.ItemData(Combo1.NewIndex) = rs.Fields!id rs.MoveNext Wend rs.Close If Combo1.ListCount > 0 Then Combo1.ListIndex = 0End Sub
do while not rs.eof() comobo1.additem rs!field end do 'rs:记录集
'objCon是Connection对象
Dim objRs As ADODB.Recordset
Set objRs = objCon.Execute(strSql)
If objRs.EOF = False Then
comBox.Clear
BindDataToCombox = True
Else
BindDataToCombox = False
Exit Function
End If
Do Until objRs.EOF = True
comBox.AddItem objRs.Fields(0).value
objRs.MoveNext
Loop
End Function
方法二:1、先从数据库里读出数据成为数据记录集Recordset;
2、之后再一条一条记录循环地AddItem 入combo里;
3、用ListIndex 设定combo里的默认显示内容.
我用additem后,第一次打开form就能看到数据库的第一二条记录。有时全部都能读出来。
可是每一次读出来后我关闭了form数据库中的记录就消失了啊???
用
Form.Visable=False
Form.Visable=True
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
dim sql as new string
'dbname为数据库名称,sqlserver为数据库服务器名称
cn.Open "Provider=SQLOLEDB.1;Password=1;Persist Security Info=True;User ID=sa;Initial Catalog= dbname Data Source=sqlserver"
sql = "select * from database where id<=10"rs.Open sql, cn, adOpenStatic, adLockOptimistic
Combo1.Clear
While Not rs.EOF
Combo1.AddItem rs.Fields!Name
Combo1.ItemData(Combo1.NewIndex) = rs.Fields!id
rs.MoveNext
Wend
rs.Close
If Combo1.ListCount > 0 Then Combo1.ListIndex = 0End Sub
comobo1.additem rs!field
end do
'rs:记录集