vb中的select语句、数据库的问题,对象有combo1.combo2,我想把筛选后的数据放在combo2中

问题:对象有combo1.combo2我想把筛选后的数据放在combo2下拉列中,应该用select语句吗,写了如下代码运行显示错误3709,上下文中已被关闭或无效,提示... 问题:对象有combo1.combo2
我想把筛选后的数据放在combo2下拉列中,应该用select 语句吗,写了如下代码
运行显示错误3709,上下文中已被关闭或无效 ,提示con=“”,是数据上哪里写错了呢?求指点呀 不胜感激
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset
Private Sub Combo1_Click()
Dim comt As String
comt = Combo1.Text
Select Case comt
Case 按设置类型
con.Open ConnectString()
If rs.State <> adStateClosed Then rs.Close
rs.Open "select * from 货位表 ", con, 1, 3
If rs.EOF = False And rs.BOF = False Then
rs.MoveFirst
While Not rs.EOF
Combo2.AddItem rs.Fields("设置类型").Value
rs.MoveNext
Wend
End If

Case 按使用面积

If rs.State <> adStateClosed Then rs.Close
rs.Open "select * from 货位表", con1, 1, 3
If rs.EOF = False And rs.BOF = False Then
rs.MoveFirst
While Not rs.EOF
Combo2.AddItem rs.Fields("使用面积").Value '添加内容到combox中
rs.MoveNext
Wend
End If
Case Else
If rs.State <> adStateClosed Then rs.Close
rs.Open "select * from 货位表", con, 1, 3
If rs.EOF = False And rs.BOF = False Then
rs.MoveFirst
While Not rs.EOF
Combo2.AddItem rs.Fields("货位状态").Value '添加内容到combox中
rs.MoveNext
Wend
End If
End Select
End Sub
展开
 我来答
pivotstar
2014-05-12 · TA获得超过471个赞
知道小有建树答主
回答量:444
采纳率:33%
帮助的人:500万
展开全部
con.Open ConnectString()
这一行应该写在 Form_Load()事件里,而且必须检查是否正埋裤宏确连接数据库
比如:
Private Sub Form_Load()
con.Open ConnectString()
if con.state <> adstateOpen then
msgbox "数据库使用 con 连接失败,检查ConnectString()相关代码。"
end if
End sub

建议修正代码///////:
rs.Open "select * from 货位表", con, 1, 3
If rs.EOF = False And rs.BOF = False Then
rs.MoveFirst
While Not rs.EOF
Combo2.AddItem rs.Fields("货位状态").Value '添加内容到combox中
rs.MoveNext
Wend
End If
改为///////:
on error resume next
rs.Open "select * from 货位表", con, 3, 3
if err.number <> 0 then
err.clear
msgbox "数据集开启失败,检查 "select * from 货位表" 字串是否错误。"
exit sub
end if

if rs.recordCount <> 0 then '先确认是否含有数据集
rs.MoveLast: rs.MoveFirst '先移至最后一笔再移回第一笔
While Not rs.EOF
Combo2.AddItem rs.Fields("货位状态").Value '添弯册加内容到combox中
' Combo2.AddItem rs!货位状态 '也可以这么写
rs.MoveNext
Wend
else
msgbox "数据集为0 没有找到数据。"
End If
'使用If rs.EOF = True And rs.BOF = True Then 可以判定没有数据集,也就是recordCount = 0,但是If rs.EOF = False And rs.BOF = False Then 当前的数据集不为0,但是有可能数据集指针位置是停留在 EOF = True 状态,这种情况下,判断会失纯亏误。
网海1书生
科技发烧友

2014-05-12 · 擅长软件设计、WEB应用开发、小程序
网海1书生
采纳数:12311 获赞数:26228

向TA提问 私信TA
展开全部
Dim con As New ADODB.Connection
Dim rs As New ADODB.Recordset

Private Sub Combo1_Click()
con.Open ConnectString()
If rs.State <> adStateClosed Then rs.Close
rs.Open "select * from 货位表", con, 1, 1
Combo2.Clear
While Not rs.EOF
    Select Case Combo1.Text
 中差   Case "按设置类型"
        Combo2.AddItem rs("设置类型")
    卖历皮Case "按使用面积"
        Combo2.AddItem rs("使用面积")
 烂余   Case Else
        Combo2.AddItem rs("货位状态")
    End Select
    rs.MoveNext
Wend
rs.Close
End Sub
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式