我用VB连SQL数据库,在添加记录时无法保存,提示"实时错误,-2147352571(80020005) 类型不匹配".调试程序发现这句话有错: mrc.Fields(intCount) = Trim(txtItem(intCount)) 哪位高人能指点一下是什么问题,怎么样改才能正确运行啊.数据类型已经对应都正确了,不知道是什么问题啊!!相关程序段:
 '先删除已有记录
    txtSQL = "delete from driver where sjid='" & Trim(txtItem(0)) & "'"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
   
    
    '再加入新记录
    txtSQL = "select * from driver"
    Set mrc = ExecuteSQL(txtSQL, MsgText)
    mrc.AddNew
    mrc.Fields(0) = Trim(txtItem(0))
    
    For intCount = 1 To 8
        mrc.Fields(intCount) = Trim(txtItem(intCount))
    Next intCount
    
    mrc.Update
    mrc.Close

解决方案 »

  1.   

    mrc.Fields("intCount")是不是要加引号
      

  2.   

    mrc.Fields(intCount) = Trim(txtItem(intCount))  检查intCount超出字段总数没有?
      

  3.   

    跟踪一下这个Trim(txtItem(intCount))是多少,对比一下你定义的类型不就完了?
    先这种错误提示显然就是你字段定义类型和赋值不匹配,没有其他原因.
      

  4.   

    错误的时候intcount的值是多少?
      

  5.   

    要先对字符串判断一下,比如判断是否为空""和是否为数字(用IsNumeric()函数)等
      

  6.   

    txtItem()函数是干什么的????
      

  7.   

    楼上的说的有道理,只是我不知道怎么进行跟踪Trim(txtItem(intCount))? 我是新学这个的,程序是照着书上搞的,你能提示一下吗?具体怎么操作啊,谢谢了  搞好就给你加分哈
      

  8.   

    if not Trim(txtItem(intCount))="" then
       if isnumeric(Trim(txtItem(intCount))) then
          mrc.Fields(intCount) = Trim(txtItem(intCount))
       end if
    end if
      

  9.   

    你在整个工程里搜索“Function txtitem(”
    找到后看看它下面的代码是什么。。
      

  10.   

    你的所有字段都是字符型的吗?如果不是,就不能简单的赋个字符串,假设有个是数值型的,你必须如下:If 当前字段是数值型 Then
      mrc.Fields(intCount) = Val(Trim(txtItem(intCount)))
    ElseIf 当前字段是字符型 Then
      mrc.Fields(intCount) = Trim(txtItem(intCount))
    End If
      

  11.   

    mrc.Fields(intCount) 这个字段为数值类型
    应该将Trim(txtItem(intCount))
    这个值显示的转换一下用val(Trim(txtItem(intCount)))如果为空则会被转换成0如果不想让其输入空值可在前面做一个
    if Trim(txtItem(intCount))<>"" thenend if的判断
      

  12.   

    If Len(Trim(txtItem(intCount))) > 0 Then   '有值
      If 当前字段是数值型 Then
        mrc.Fields(intCount) = Val(Trim(txtItem(intCount)))
      ElseIf 当前字段是字符型 Then
        mrc.Fields(intCount) = Trim(txtItem(intCount))
      End If
    Else  ‘空值
      ...什么也不做
    End If