Dim rLoadCom As New ADODB.Recordset
    Dim I As Integer
    
    Combo1.Clear
    Call rLoadCom.Open("select AutoID,FullName from StyleInfo where Style=2 and  Void_flag=0 ", DataE.Conne, adOpenKeyset, adLockReadOnly)
    I = 0
    With rLoadCom
        If .RecordCount <> 0 Then
            Do While Not .EOF
                If Combo1.List(I) <> .Fields("FullName").Value Then
                    Combo1.AddItem .Fields("FullName").Value, .Fields("AutoID").Value
                End If
                .MoveNext
            Loop
        End If
    End With
    rLoadCom.Close
    Set rLoadCom = Nothing其实我是想:在combo1中,加载一列ID和一列名称,界面上显示名称,但当我需要存入数据库的时候是要选择ID存进去.
该怎样加载呢?

解决方案 »

  1.   

    .Fields("AutoID").Value
    是连续增加的吗?
    貌似是不可以跨越式添加的比如:1,2,3,6
    前三个就OK,第四个就出错了
      

  2.   

    参阅
    ItemData 属性
          返回或设置 ComboBox 或 ListBox 控件中每个项目具体的编号。语法object.ItemData(index) [= number]ItemData 属性语法包含下面部分:部分 描述 
    Object 对象表达式,其值是“应用于”列表中的一个对象。 
    Index 对象中指定项目的编号。 
    Number 与指定项目相关联的数。 
    说明ItemData 属性是一个长整型数的数组,它有与控件的 List 属性相同数目的项目。可以用与每一项相关的数来标识它们。例如,在 ListBox 控件中,可以用雇员身份号来标识每一个雇员的名字。填 ListBox 时,也要将雇员号填入 ItemData 相应的元素中。ItemData 常常用做与 ListBox 控件中项目相关的数据结构数组的索引。注意 利用 AddItem 方法在列表中插入一个项目时,在 ItemData 数组中也会自动插入一项。但是其值不会重新初始化为 0;它保持列表在插入项目之前该位置的值。用 ItemData 属性时,一定要在向列表中加入新项时,设置它的值。
      

  3.   

    加个collection对应combobox。
    选好后,col(combobox。listindex + 1)
      

  4.   

    .AddItem item, index
    index必须从0开始,而且必须是连续的。
      

  5.   


    Combo1.AddItem .Fields("FullName").Value
    Combo1.ItemData(Combo1.NewIndex) = .Fields("AutoID").Value读出的时候,tmp = Combo1.ItemData(Combo1.ListIndex)