请教思路:比如用组合框显示地区名称列表,可是要取地区名称所对应的地区编号,[不想在组合框中显示编号]
------
如:一点组合框,便显出所有地区的名称,但是为了好看,不想显示地区编码,可是取值时却要取地区编码,我的地区编码如何取呢?
我现在的办法是用两个组合框,让两个同步联动,一个显示名称,一个显示编码,显示编码的组合框不可见.这种方法也可实现,但总觉得不好.有没有好的办法呀?

解决方案 »

  1.   

    'For example:
        Combo1.AddItem "bq2083"
        Combo1.AddItem "bq2084"
        Combo1.AddItem "bq2085"        For ii = 0 To Combo1.ListCount - 1
            Combo1.ItemData(ii) = ii+10
        Next ii
      

  2.   

    用它的ItemData属性来存放[地区编码]:Private Sub Combo1_Click()
        Text1.Text = Combo1.ItemData(Combo1.ListIndex)
    End Sub
    Private Sub Form_Load()
        Dim i%
        For i = 0 To 9
            Combo1.AddItem  "地区名称" & i
            Combo1.ItemData(i) =  "地区编码" & i
        Next
    End Sub
      

  3.   

    ItemData属性存的是 长整型数据我看你还是用TreeView控件来做好些.
      

  4.   

    ItemData属性可以存放字符串吗?现在没有环境先问一下,回去有编程环境我再试试.谢谢了.
    因为做为编码的一般是字符型.
      

  5.   

    Blade_hxh(水上飞) 说得对,ItemData存的是长整型数据,不能是字符串
      

  6.   

    如果数据是从数据库取的,可以考虑使用datacombo。。
      

  7.   

    用数组来存放[地区编码]:Dim TempDynA()Private Sub Combo1_Click()
        Text1.Text = TempDynA(Combo1.ListIndex)
    End Sub
    Private Sub Form_Load()
        Dim i%
        ReDim TempDynA(10)
        For i = 0 To 9
            Combo1.AddItem  "地区名称" & i
            TempDynA(i) =  "地区编码" & i
        Next
    End Sub
        
      

  8.   

    用数组还是有点问题,想了想,比如将一个记录集的内容显示在窗体上,将地区以组合框的形式显示,就要让组合框显示记录集中的编号所对应的名称.
    还是以地区编码举例,实际并不是这个字段
    如:tablebh为地区编号表,字段为:
    地区编号,地区名称
    table1为一个数据表,含有地区编码的字段
    select a.*,b.地区名称 from table1 a left join tablebh b on (a.地区编码=b.地区编码)
    这样可以通过连接在记录集中获得地区名称信息.
    如果将这条记录显示在窗体中时,用组合框显示地区名称,用数组存放地区编码
    如何通过地区编码信息在组合框中显示相应的名称信息呢/
    关键是组合框中如何定位.
      

  9.   

    如果就是这样的数据,完全可以用 ItemData.编码,名称
    001,家用设备
    002,印刷设备
    003,办公设备
    005,办公用品
    006,销耗材料private sub form_load()
    '假定数据来自数据库
    '......
    ’假定你已经打开了记录集
    do until rs.eof
       combo1.additem rs!名称
       combo1.itmedata(combo1.newindex) = val(rs!编码)
    loop
    end subprivate combo1_click()
      debug.print format(combo1.itmedata(combo1.listindex), "00#")
    end sub
      

  10.   

    如果就是这样的数据,完全可以用 ItemData.
    -----------------
    我说了,只是举例子,实际上编码是不用数字的.而是用字符串.
    编码,名称
    a2,家用设备
    dfg,印刷设备
    rwwe,办公设备
    df,办公用品
    gfgret,销耗材料还有,如果编码位数也不一样.[没办法,有的系统设计的编码位是可以不一样的]
      

  11.   

    有現成的控件為何不用?DataCombo,可以綁定二列,一列顯示,一列在後台用。
      

  12.   

    那你是自找麻烦了。所谓编码,就是为了计算机容易存储识别,你弄些字符串,不是有意难为自己吗?如果程序是你做的,就将编码改为 Long 型。否则就只有使用数组了:dim strCode() As String '用一个数组存放你的“编码”,下标与 Combo 列表索引对应private sub form_load()
    do until rs.eof
       combo1.additem rs!名称
       redim preserve strcode(combo1.newindex)
       strcode(combo1.newindex) = rs!编码
    loop
    end subprivate combo1_click()
      debug.print strcode(combo1.listindex)
    end sub
      

  13.   

    定位的问题容易啦,按照下面的就OK了Dim TempDynA()Private Sub Combo1_Click()
        Text1.Text = TempDynA(Combo1.ListIndex)
    End Sub
    Private Sub Form_Load()
        ReDim TempDynA(rs.RecordCount)
        rs.MoveFirst
        Do While not rs.EOF 
            Combo1.AddItem  rs!地区名称
            TempDynA(Combo1.NewIndex) =  rs!地区编码
            rs.MoveNext
        loop
    End Sub
      

  14.   

    有現成的控件為何不用?DataCombo,可以綁定二列,一列顯示,一列在後台用。
    -------------------
    谢谢,如何添加这个控件呀,我的工具箱中没有呀?