不知道是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.RecordsetSub main()
adoCnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\ld.mdb;Persist Security Info=False"
adoCmm.ActiveConnection = adoCnn
adoCmm.CommandType = adCmdTextForm1.Show
End Sub
-----------------------------------------------------------------------------------------
Private Sub Combo1_Click()
Call Ccombo2
End SubPrivate Sub Ccombo2()
'Dim k As String'k = "select * from tab1"
If adoRec.State = adStateClosed Then
adoRec.Open "tab1", adoCnn, 1, 3
End IfWhile Not adoRec.EOF
Combo1.AddItem adoRec(0).Value
adoRec.MoveNext
WendEnd SubPrivate Sub Form_Load()End Sub
谢谢,帮忙看看.
把代码写在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.RecordsetSub main()
adoCnn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\ld.mdb;Persist Security Info=False"
adoCmm.ActiveConnection = adoCnn
adoCmm.CommandType = adCmdTextForm1.Show
End Sub
-----------------------------------------------------------------------------------------
Private Sub Combo1_Click()
Call Ccombo2
End SubPrivate Sub Ccombo2()
'Dim k As String'k = "select * from tab1"
If adoRec.State = adStateClosed Then
adoRec.Open "tab1", adoCnn, 1, 3
End IfWhile Not adoRec.EOF
Combo1.AddItem adoRec(0).Value
adoRec.MoveNext
WendEnd SubPrivate Sub Form_Load()End Sub
谢谢,帮忙看看.
adoRec.Open "tab1", adoCnn, 1, 3
End IfWhile Not adoRec.EOF
Combo1.AddItem adoRec(0).Value
adoRec.MoveNext
Wend
你的tab1根本没有定义啊!当然结果集就是空的了!
这是我的combobox问题还是BUG
我的tab1是数据库中的一个表呀,已经定义好的了,仔细看最开始我说的话,就能看到.billsmileok(后街男孩),这2个地方,应该没有错的.因为我把他们原封不动地在form_load中调用就可以显示.
也就是说,这2个地方没有错的.至今迷惑中@_@
哈哈,看来的确是combobox的bug了~~在我朋友那里,也是不相应.也就是说,根本就没有click这个事件.郁闷啊~```
我的意思是,当点击这个控件(不点击菜单),那么它就改变自己text的值,或者菜单里边的内容改变.那这样的话,应该怎么做啊?jian_aa(aa) 你写过类似此方法的程序么?
在GotFocus事件里写
Me.Combo1.AddItem "aaaaa"End Sub
我的意思是,当点击这个控件(不点击菜单),那么它就改变自己text的值,或者菜单里边的内容改变.那这样的话,应该怎么做啊?
===================
可以,但恐怕会得不偿失。
在combo里有一个edit,在子类中拦截这个edit的wm_lbuttondown事件然后做处理