表  TB 结构如下  COUNTRY_CODE      COUNTRY_NAME    
cn               中国
us               美国 
.......再程序界面上用  cobbobox  读取显示的是COUNTRY_NAME  列再实际存储表种保存的是   cn  /  us  ....  值 
存储表字段 如:
name     sex  dept  countrymr.right  f   sun   us  
为了保存 'us'  而不是  '美国'  是不是 没次保存都要 根据 界面上的 combobox 值 '美国' 查询tb返回  'us'  再 保存呢  有没有 简单 的办法 。
 
               

解决方案 »

  1.   

    你可再读取COUNTRY_NAME  列 时用数组保存COUNTRY_CODE值,而数组
    的索引号就是 combobox的LISTINDEX属性值
      

  2.   

    不用combobox不就好了,把combobox换成ImageCombo就很容易解决
    添加 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
      

  3.   

    可以使用datacombo控件.
    参考资料:http://www.lihuasoft.net/article/show.php?id=3273
      

  4.   

    用combox也可以
    这样你可以用choose建一个列表,根据listindex返回所需的code:
      

  5.   

    choose建一个列表  ?这是什么意思?
      

  6.   

    在窗体的load事件中:
    combo1.additem "中国"
    combo1.additem "美国"在combox的click事件中测试如下代码就明白了:
    msgbox choose(combo1.listindx+1,"cn","us")
      

  7.   

    当然如果你表中这些数据是动态的,choose可能不行,可以用集合吧?
      

  8.   

    何必那么麻烦呢,ImageCombo就是集合,使用简单,界面也可以做得更好看。
    就是要多拖一个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