使用的数据库为Access,代码如下
cboEmpInfo.ItemData(cboEmpInfo.NewIndex) = rs.Fields("emp_id").Value
emp_id类型为"String"当emp_id的值为"123"时正常使用:
当emp_id的值为"a12"时就报错,错误代码" 实时错误'13':类型不匹配 "
请教各位我应该怎么修改

解决方案 »

  1.   

    cboEmpInfo是个什么东西?
    从错误看,cboEmpInfo.ItemData是数字型的。
      

  2.   

    cboEmpInfo.ItemData = rs.Fields("emp_id")
      

  3.   

    由Combo1.ItemData(Integer) as Long可知
     rs.Fields("emp_id").Value 的值应该是Long类型的数据,你的"a12"为String,当然要报错了
      

  4.   

    Newindex不是固定Integer类型吗 ??我从教程上看是的 ...
      

  5.   

    应该是你数据库里 emp_id被定义为数值型了,试着把emp_id改成字符型看看.
      

  6.   

    就是楼上那意思
    cboEmpInfo.ItemData(cboEmpInfo.NewIndex)是Long型的, 而你数据库中的emp_id是字符串型的,当emp_id中的值是纯数字时就不会出错,一旦有非数字型的值时就会报错
      

  7.   


    您的指导和我意图反了...emp_id原本是自动编号,我就是想让它能接受我的自行编号.
    所以问题是怎么样将cboEmpInfo.ItemData(cboEmpInfo.NewIndex)改为Cstr
      

  8.   

     ItemData 是 Long 型。如果你的字符串中的字母不超过 A - F:cboEmpInfo.ItemData(cboEmpInfo.NewIndex) = Val("&H" & rs.Fields("emp_id").Value)否则就必须做一个编码,就字符串变为 Long 型的数字。 ItemData 的类型无法更改,预先设计好的。一个变通的方法是,你另建一个数组,Index 与 Combo 的 ListIndex 一一对应,用来保存你的字符串。