ComboBox 怎么选中,最简单的问题,在线等

MonkeyDHua 绍兴盘古软件技术有限公司 搬砖  2006-01-21 09:15:23
Combo4.style=2 '只读属性

combo4.text=rs("Utype") '这样是错的,只读属性,不能选中,怎样选中其中的一项,就是跟数据库记录一样的一项。
...全文
123 点赞 收藏 7
写回复
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainstormmaster 2006-01-21
注意,上面的程序查找的字串不是完全匹配,修改一下:
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const CB_SELECTSTRING = &H14D
Private Const CB_FINDSTRINGEXACT = &H158
Private Sub Command2_Click()
Dim i As Long
i = SendMessage(Combo1.hwnd, CB_FINDSTRINGEXACT, -1, ByVal rs("Utype"))
If i = -1 Then
Exit Sub
End If
Combo1.ListIndex = i
End Sub
回复
lsir2006 2006-01-21
1 combo4.Locked =True 替换 Combo4.style=2

2 如果不让客户自己在combo4里输入信息
在 combo4_change() 里 写 combo4.text="" 即可
或者
sub combo4_change()
rs2.open "Select * From tab Where Utype=" & rs("Utype") ,conn,adOpenForwardOnly, adLockReadOnly
if rs2.eof then combo4.text=""
end sub

3 combo4.additem rs("Utype") 方式添加列表记录
回复
rainstormmaster 2006-01-21
//在combo4里怎么知道值呢?我是读数据库出来里,有多条记录写入到combo4里面,并且不确定数量

那你就查询数据库,获得位置,用个变量标记一下

//怎样选中其中的一项,就是跟数据库记录一样的一项。

发送CB_SELECTSTRING 消息给combobox控件

Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const CB_SELECTSTRING = &H14D

Private Sub Command1_Click()
SendMessage Combo1.hwnd, CB_SELECTSTRING, 0, ByVal rs("Utype")
End Sub
回复
MonkeyDHua 2006-01-21
在combo4里怎么知道值呢?我是读数据库出来里,有多条记录写入到combo4里面,并且不确定数量。
回复
faysky2 2006-01-21
说错了,是ListIndex
回复
faysky2 2006-01-21
你要保证Combo里有rs("Utype") 那个值才行,或者如果你知道rs("Utype") 在Combo里的Index,用Combo4.Index=某个数值来显示rs("Utype")
回复
zyl910 2006-01-21
查找ComboBox中的项目,找到后设置ListIndex
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7451

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告