一个奇怪的combobox控件问题.

silvercard 2005-05-24 02:06:04
不知道是VB的bug问题,还是我的问题.

想用combobox显示表中一列的内容.例如是tab1.数据库连接没问题.
把代码写在form_load()里边,也是没有问题,点击combobox时,数据库中表内的内容就显示在combobox的下拉菜单中了.
但是如果把此代码,放到 过程 中.然后在private sub combobox_click()中调用.这时,下拉菜单没有反应.也就是说,程序失效了.不知道为什么~``????别人的程序在它的click()属性中,就能用.而我自己编写的,就用不了.好奇怪~~
下边是代码
------------------------------------------------------------------------------------
Option Explicit
Public adoCnn As New ADODB.Connection
Public adoCmm As New ADODB.Command
Public adoRec As New ADODB.Recordset

Sub main()
adoCnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\ld.mdb;Persist Security Info=False"
adoCmm.ActiveConnection = adoCnn
adoCmm.CommandType = adCmdText

Form1.Show
End Sub
-----------------------------------------------------------------------------------------
Private Sub Combo1_Click()
Call Ccombo2
End Sub

Private Sub Ccombo2()
'Dim k As String

'k = "select * from tab1"
If adoRec.State = adStateClosed Then
adoRec.Open "tab1", adoCnn, 1, 3
End If

While Not adoRec.EOF
Combo1.AddItem adoRec(0).Value
adoRec.MoveNext
Wend

End Sub

Private Sub Form_Load()

End Sub
谢谢,帮忙看看.
...全文
135 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
silvercard 2005-05-24
  • 打赏
  • 举报
回复
好吧,谢谢各位.
lsftest 2005-05-24
  • 打赏
  • 举报
回复
没有纯粹的click事件么?
我的意思是,当点击这个控件(不点击菜单),那么它就改变自己text的值,或者菜单里边的内容改变.那这样的话,应该怎么做啊?
===================
可以,但恐怕会得不偿失。。。。
在combo里有一个edit,在子类中拦截这个edit的wm_lbuttondown事件然后做处理。。。。。。
CPLiu 2005-05-24
  • 打赏
  • 举报
回复
Private Sub Combo1_DropDown()
Me.Combo1.AddItem "aaaaa"

End Sub
silvercard 2005-05-24
  • 打赏
  • 举报
回复
唉,不太好啊~~还是click比较好点.

我再看看吧~~
jian_aa 2005-05-24
  • 打赏
  • 举报
回复
哦,那你可以在COMBOBOX得到焦点的时候写代码啊
在GotFocus事件里写
silvercard 2005-05-24
  • 打赏
  • 举报
回复
没有纯粹的click事件么?
我的意思是,当点击这个控件(不点击菜单),那么它就改变自己text的值,或者菜单里边的内容改变.那这样的话,应该怎么做啊?

jian_aa(aa) 你写过类似此方法的程序么?
CPLiu 2005-05-24
  • 打赏
  • 举报
回复
点击列表项时才触发COMBOBOX的CLICK事件
jian_aa 2005-05-24
  • 打赏
  • 举报
回复
click事件是有的,当combobox里的ListIndex改变时就会触发click
silvercard 2005-05-24
  • 打赏
  • 举报
回复
jian_aa(aa)
哈哈,看来的确是combobox的bug了~~在我朋友那里,也是不相应.也就是说,根本就没有click这个事件.

郁闷啊~```
silvercard 2005-05-24
  • 打赏
  • 举报
回复
呵呵,谢谢各位这么热心.
我的tab1是数据库中的一个表呀,已经定义好的了,仔细看最开始我说的话,就能看到.

billsmileok(后街男孩),这2个地方,应该没有错的.因为我把他们原封不动地在form_load中调用就可以显示.
也就是说,这2个地方没有错的.

至今迷惑中@_@
jian_aa 2005-05-24
  • 打赏
  • 举报
回复
晕,试了一下,新添加一个combobox,发现它根本不响应Click和DblClick
这是我的combobox问题还是BUG
pweixing 2005-05-24
  • 打赏
  • 举报
回复
If adoRec.State = adStateClosed Then
adoRec.Open "tab1", adoCnn, 1, 3
End If

While Not adoRec.EOF
Combo1.AddItem adoRec(0).Value
adoRec.MoveNext
Wend


你的tab1根本没有定义啊!当然结果集就是空的了!
billsmileok 2005-05-24
  • 打赏
  • 举报
回复
还有就是把adoRec.Open "tab1", adoCnn, 1, 3中的tab1换成k,再看看。
billsmileok 2005-05-24
  • 打赏
  • 举报
回复
你把那个Combo1.AddItem adoRec(0).Value中的adoRec(0).value加上"",实验一下。
silvercard 2005-05-24
  • 打赏
  • 举报
回复
combo1呀,这个是我combobox的控件名称
shuaishen12 2005-05-24
  • 打赏
  • 举报
回复
你自己的ComboBox控件的名称是什么呢?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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