如何解决数据的读取!

ramiro 2006-02-15 04:56:23
form上有两个控件combo1和combo2,想从数据库中取出来两个字段的数据,分别是这两个字段department和name,combo1对应的是department,combo2对应的是name,combo1通过click事件变动,如何使combo2也跟着变动.
...全文
79 点赞 收藏 8
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
faysky2 2006-02-18
用rs.Open语句的时候,需要指定它的数据库连接对象

rs.Open "sql语句",cn '<--------------cn就是数据库连接对象,而且,cn必须是已经打开了的
回复
ramiro 2006-02-17
我是已经建立了连接了.
在窗体加载的时候我添加了combo1,在点击了combo2的时候我执行这条SQL语句("select distinct name from 表 where department='" & Combo1.Text & "'")

系统提示 rs.Open "select budget from subject where department='" & Combo1.Text & "'"
这句错误. 在此上下文中它可能已被关闭或无效!
回复
faysky2 2006-02-16
上面只是给出了主要代码,需要补充变量的定义,数据库的连接才能正确运行

首先得引用ADO(工程/引用/Microsoft AcitateX Data Object 2.X Library)

dim cn as new adodb.connectionstring

Private sub Form_Load()
cn.CursorLocation=adUseClient
cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\Test.mdb;User Id=admin;Password=;"
End Sub

上面是连接Access库的代码,App.Path 表示当前工程所在的目录


Private Sub Combo1_DropDown()
......
End Sub



Private Sub Combo2_DropDown()
......
End Sub

回复
feiyun0112 2006-02-16
Private Sub Combo1_click()
Dim rs As New adodb.Recordset
Set rs = cn.Execute("select distinct name from 表 where department='" & Combo1.Text & "'")
Combo2.Clear
While Not rs.EOF
Combo2.AddItem rs(0) & ""
Wend
rs.Close
Set rs = Nothing
End Sub
回复
ramiro 2006-02-15
是在这个事件过程中做吗?
Private Sub Combo2_DropDown()

出错了!提示说联接无法执行此操作!在此上下文中它可能已被关闭或无效!
回复
bbhere 2006-02-15
rs.open "select name from Table where department = '" & combo1.text & "'" ,cnn
combo1.clear

if not rs.eof then
combo2.additem rs.fileds("name")
rs.movenext
end if
回复
faysky2 2006-02-15
主要代码(自己把代码补完整):
Private Sub Combo1_DropDown()
Dim rs As New adodb.Recordset
Set rs = cn.Execute("select distinct department from 表")
Combo1.Clear
While Not rs.EOF
Combo1.AddItem rs(0) & ""
Wend
rs.Close
Set rs = Nothing
End Sub

Private Sub Combo2_DropDown()
Dim rs As New adodb.Recordset
Set rs = cn.Execute("select distinct name from 表 where department='" & Combo1.Text & "'")
Combo2.Clear
While Not rs.EOF
Combo2.AddItem rs(0) & ""
Wend
rs.Close
Set rs = Nothing
End Sub

回复
ZOU_SEAFARER 2006-02-15
rs.open "select name from Table where department = '" & combo1.text & "'" ,cnn
Me.Combo1.Clear

if not rs.eof then
combo2.additem rs.fileds("name")
rs.movenext
end if
回复
相关推荐
发帖

1187

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
帖子事件
创建了帖子
2006-02-15 04:56
社区公告
暂无公告