表 TB 结构如下 COUNTRY_CODE COUNTRY_NAME
cn 中国
us 美国
.......再程序界面上用 cobbobox 读取显示的是COUNTRY_NAME 列再实际存储表种保存的是 cn / us .... 值
存储表字段 如:
name sex dept countrymr.right f sun us
为了保存 'us' 而不是 '美国' 是不是 没次保存都要 根据 界面上的 combobox 值 '美国' 查询tb返回 'us' 再 保存呢 有没有 简单 的办法 。
cn 中国
us 美国
.......再程序界面上用 cobbobox 读取显示的是COUNTRY_NAME 列再实际存储表种保存的是 cn / us .... 值
存储表字段 如:
name sex dept countrymr.right f sun us
为了保存 'us' 而不是 '美国' 是不是 没次保存都要 根据 界面上的 combobox 值 '美国' 查询tb返回 'us' 再 保存呢 有没有 简单 的办法 。
的索引号就是 combobox的LISTINDEX属性值
添加 Microsoft Windows Common Controls 6.0 控件
里面就有 ImageCombo 控件了,还可以配合 ImageList 使用图标。 Dim rs As ComboItem
Dim X As Long
Dim strArray() As String
'这样就可以把 us 存到 Key 属性里了
Set rs = ImageCombo1.ComboItems.Add(1, "us", "美国")
'如果还有附加信息想存,可以这样
rs.Tag = "你想存的信息1|你想存的信息2|你想存的信息3"
'可以这样取出值来
'以下是取 key 属性的值
MsgBox ImageCombo1.SelectedItem.Key
'以下可以将 Tag 属性值分成数组得到更多参数
strArray = Split(ImageCombo1.SelectedItem.Tag, "|")
For X = 0 To UBound(strArray)
MsgBox strArray(X)
Next X
参考资料:http://www.lihuasoft.net/article/show.php?id=3273
这样你可以用choose建一个列表,根据listindex返回所需的code:
combo1.additem "中国"
combo1.additem "美国"在combox的click事件中测试如下代码就明白了:
msgbox choose(combo1.listindx+1,"cn","us")
就是要多拖一个OCX,呵呵.
如果一定要用combobox,多建立一个数组就解决了Dim EnglishName() As StringPrivate Sub Command1_Click()
MsgBox Combo1.List(Combo1.ListIndex) & " " & EnglishName(Combo1.ListIndex)
End SubPrivate Sub Form_Load()
Dim rs As New Recordset
rs.Open "Select * From TableName", conn, 3, 3
rsRecordCount = rs.RecordCount
For x = 1 To rsRecordCount
Combo1.AddItem rs!COUNTRY_NAME
ReDim Preserve EnglishName(Combo1.ListCount - 1)
EnglishName(Combo1.ListCount - 1) = rs!COUNTRY_CODE
If x < rsRecordCount Then rs.MoveNext
Next x
rs.Close
End Sub