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 展开
我想把筛选后的数据放在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 展开
2个回答
展开全部
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 状态,这种情况下,判断会失纯亏误。
这一行应该写在 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 状态,这种情况下,判断会失纯亏误。
展开全部
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
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询