在combobox中如何用ADO对象绑定?

softwaredream 2003-01-02 01:33:42
现在想用ADO对象来绑定combobox,假设:
dim cnn1 as ADODB.Connection
dim rs1 as ADODB.Recordset

Private Sub Form_Load()
Set cnn1 = New ADODB.Connection
Set rs1 = New ADODB.Recordset
Dim local_sql As String
cnn1.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=发厅综合业务;Data Source=HOME1\SQL2000"
cnn1.Open
local_sql = "select * from 员工信息"
rs1.CursorLocation = adUseClient
rs1.Open local_sql, cnn1, adOpenDynamic, adLockOptimistic
下面我要把ADO对象绑定到combobox1中,应该怎么做?
...全文
108 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
三楼の郎 2003-01-02
  • 打赏
  • 举报
回复
set datacombo1.rowsource=rst
datacombo1.listfield="员工号"

这才是正确代码!
litsnake1 2003-01-02
  • 打赏
  • 举报
回复
不是:
set datacombo1.datasource=rst
datacombo1.datafield="员工号"
softwaredream 2003-01-02
  • 打赏
  • 举报
回复
那么我要绑定的话,是不是
set datacombo1.datasource=cnn1
set datacombo1.datafield=rs1!员工号
呢?
XLYT 2003-01-02
  • 打赏
  • 举报
回复
DBCombo 控件


DBCombo 控件是带有下拉列表框的与数据相连的组合框,它能自动从与它相连的 Data 控件的字段中移居,也可以有选择地更新其它 Data 控件中相关表的字段。DBCombo 的文本框部分能用来编辑选定的字段。

语法

DBCombo

说明

DBCombo 控件和标准 ComboBox 控件不同。ComboBox 控件的列表用 AddItem 方法填加数据项,而 DBCombo 控件由和它相连的 Data 控件的 Recordset 对象中的字段中的数据自动填加数据项。标准 ComboBox 控件必须用 AddItem 方法手工移居。另外,DBCombo 控件有能力更新驻留在不同的 Data 控件中的相关的 Recordset 对象的字段。

DBCombo 控件支持自动查找模式,不用附加代码能迅速在列表中定位数据项。

下面是一系列属性,用于填充、管理 DBCombo 控件以及绑定选定数据和 Data 控件。

属性 特性
DataSource 作出选择后更新的 Data 控件名。
DataField 由 DataSource 属性指定的在 Recordset 中更新的字段名。
RowSource 控件列表区字段的作为项目源使用的 Data 控件名。
ListField 由 RowSource 指定的在 Recordset 中的字段名以填充下拉列表。DBCombo 不支持 Listfield 属性的 LongBinary 型的字段。
BoundColumn 由 RowSource 指定的在 Recordset 中的 Field 名,当选择确定后回传到 DataField。DBCombo 不支持 BoundColumn 的 LongBinary 型的字段。
BoundText BoundColumn 字段的文本值。当选择确定后,该值被回传以更新由 DataSource 和 DataField 属性指定的 Recordset 对象。
Text 在列表框中选定项目的文本值。
MatchEntry 在运行时当用户键入字符时如何查找列表。
SelectedItem 由 RowSource 属性指定的记录集中选定项目的书签。
VisibleCount 在列表中可见的项目数目(全部或部分)。
VisibleItems 一组书签,具有和 VisibleCount 属性相等的项目的最大数。


用户能通过在控件的文本框部分键入值查找 DBCombo 控件。一旦键入,该值被放入列表,当前列表项目设置成该项。如果没有找到项目,BoundText 属性设成 null。

注意 如果未使控件的边界大到至少是以答的下拉式列表的一行,在运行时列表不会显示出来。
softwaredream 2003-01-02
  • 打赏
  • 举报
回复
那么datacombo控件用语句怎么实现和数据的绑定呢?
of123 2003-01-02
  • 打赏
  • 举报
回复
组合框的绑定分成两个概念:
1 textbox部分的绑定:主要用于显示和编辑字段
设置datasource为一个数据控件(或记录集,限于支持ADO的datacombo)
设置datafield为一个指定字段。

2 listbox部分的绑定:用于字段内容的选择
设置rowsource为一个数据控件(或记录集,限于支持ADO的datacombo)
设置listfield为一个指定字段。


combobox只支持第1种绑定。
你的情况,如果要求第2种绑定,改用datacombo(添加部件 microsoft datalist controls 6.0 后就有了)。
如果使用DAO,则采用dbcombo(添加部件 microsoft data bound list controls 6.0 后就有了)。
XLYT 2003-01-02
  • 打赏
  • 举报
回复
绑定还是仅显示?
如果仅显示,楼上的就足够了。
如果要绑定,推荐用DBCOMBO,如果非得用combobox,就得自己考虑刷新显示和更新数据的代码。
zhangbob 2003-01-02
  • 打赏
  • 举报
回复
dim cnn1 as ADODB.Connection
dim rs1 as ADODB.Recordset

Private Sub Form_Load()
Set cnn1 = New ADODB.Connection
Set rs1 = New ADODB.Recordset
Dim local_sql As String
cnn1.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=发厅综合业务;Data Source=HOME1\SQL2000"
cnn1.Open
local_sql = "select * from 员工信息"
rs1.CursorLocation = adUseClient
rs1.Open local_sql, cnn1, adOpenDynamic, adLockOptimistic
combobox1.clear
do until rs1.eof
combobox1.additem rs!字段
rs1.movenext
loop
rs1.close
blueiceberg 2003-01-02
  • 打赏
  • 举报
回复
大哥,不会吧,用个循环就Ok了
combobox1.clear
do until rs1.eof
combobox1.additem rs!字段
rs1.movenext
loop
大哥,给分吧

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧