在一个窗体中,实现一条记录的编辑功能,也就是说用很多控件来显示记录,用户修改后要写入后台数据库sql server,有的字段用文本框显示,显示和更新都很好处理,可是有些字段就要用到组合框来显示和更新。比如部门编码这样的字段,这时不能让用户在文本框中输入部门编码呀,而是要用组合框来显示所有的部门,然后由用户在组合框中选择一个部门。但是有这样一个问题,组合框不能显示部门编码,而是要显示部门名称,因为用户不一定记得住哪个部门是哪个编码,所以要让用户选择部门名称,由名称到编码的转换是要由系统来完成的。所以这时组合框中显示的是名称,可是这样如何将部门的编码信息更新到后台数据库表呢?
当然,也可以在组合框的各项中同时显示部门编码和部门名称,可是这样用户选择后,组合框中的值也是编码和名称是一体的,也不好将编码分出来(当然如果编码的位数是固定的,可以提出前几位就可以了,可是有时编码的位数是不定的,这种情况也是常有的。就算自已设计系统时,会将编码的位数固定下来,可是你无法保证以前正在使用的系统中,编码位数也是固定的,可是这些系统也是要维护的呀。)所以想请大家给点意见,您在工作中是如何处理这类问题的?

解决方案 »

  1.   

    通过listIndex属性可以得到选择项的index,这个index可以作为数据库中每个对应的部门的编号。如果listIndex=-1,表示没有从组合框中选择。
      

  2.   

    如果打算把编码写进去,就用空格分隔编码和名称,例如“0001 财务部”,然后取值的时候用空格拆分
    aryCode()=split(combo.text," ")
    strCode=aryCode(0)
    这时strCode就是部门代码
      

  3.   


    如果打算把编码写进去,就用空格分隔编码和名称,例如“0001 财务部”,然后取值的时候用空格拆分
    aryCode()=split(combo.text," ")
    strCode=aryCode(0)
    这时strCode就是部门代码
    ----------------------------
    谢谢,这是一种好方法,我以前也用过。不过有时用户有这样的要求,他说:组合框中不要显示编码,只显示名称,否则太乱。这样我用什么方法提取编码呢?一直没有好的思路。
      

  4.   


    有專門的控件啊DataComboBox
    ------------------
    如何加入这个控件呀,我的工具箱中没有呀。??