For i = 1 To 100
  If mf1.TextMatrix(i, 1) <> "" And mf1.TextMatrix(i, 8) <> "" Then
   '添加入库商品信息到"rkd"表中
   Adodc3.Recordset.AddNew
   If mf1.TextMatrix(i, 1) <> "" Then Adodc3.Recordset.Fields("商品名称") = mf1.TextMatrix(i, 1)
   If mf1.TextMatrix(i, 2) <> "" Then Adodc3.Recordset.Fields("简称") = mf1.TextMatrix(i, 2)
   If mf1.TextMatrix(i, 3) <> "" Then Adodc3.Recordset.Fields("批号") = mf1.TextMatrix(i, 3)
   If mf1.TextMatrix(i, 4) <> "" Then Adodc3.Recordset.Fields("产地") = mf1.TextMatrix(i, 4)
   If mf1.TextMatrix(i, 5) <> "" Then Adodc3.Recordset.Fields("规格") = mf1.TextMatrix(i, 5)
   If mf1.TextMatrix(i, 6) <> "" Then Adodc3.Recordset.Fields("包装") = mf1.TextMatrix(i, 6)
   If mf1.TextMatrix(i, 7) <> "" Then Adodc3.Recordset.Fields("单位") = mf1.TextMatrix(i, 7)
   If mf1.TextMatrix(i, 8) <> "" Then Adodc3.Recordset.Fields("数量") = mf1.TextMatrix(i, 8)
   If mf1.TextMatrix(i, 9) <> "" Then Adodc3.Recordset.Fields("进价") = mf1.TextMatrix(i, 9)
   If mf1.TextMatrix(i, 10) <> "" Then Adodc3.Recordset.Fields("金额") = mf1.TextMatrix(i, 10)
   If mf1.TextMatrix(i, 11) <> "" Then Adodc3.Recordset.Fields("备注") = mf1.TextMatrix(i, 11)
   If gys.Text <> "" Then Adodc3.Recordset.Fields("供应商") = gys.Text
   If jsr.Text <> "" Then Adodc3.Recordset.Fields("经手人") = jsr.Text
   If rkrq.Text <> "" Then Adodc3.Recordset.Fields("日期") = rkrq.Text
   If PH.Text <> "" Then Adodc3.Recordset.Fields("票号") = PH.Text
   Adodc3.Recordset.Update        '更新表
   '查找库存商品信息
   Adodc1.Recordset.MoveFirst
Adodc1.Recordset.Find "(kc.商品名称 = " & mf1.TextMatrix(i, 1) & " And kc.批号 = " & mf1.TextMatrix(i, 3) & " And kc.产地 = " & mf1.TextMatrix(i, 4) & " And kc.规格 = " & mf1.TextMatrix(i, 5) & ")"
If Adodc1.Recordset.EOF Then
   '添加入库商品到"kc"表中
    Adodc1.Recordset.AddNew
    If mf1.TextMatrix(i, 1) <> "" Then Adodc1.Recordset.Fields("商品名称") = mf1.TextMatrix(i, 1)
    If mf1.TextMatrix(i, 2) <> "" Then Adodc1.Recordset.Fields("简称") = mf1.TextMatrix(i, 2)
    If mf1.TextMatrix(i, 3) <> "" Then Adodc1.Recordset.Fields("批号") = mf1.TextMatrix(i, 3)
    If mf1.TextMatrix(i, 4) <> "" Then Adodc1.Recordset.Fields("产地") = mf1.TextMatrix(i, 4)
    If mf1.TextMatrix(i, 5) <> "" Then Adodc1.Recordset.Fields("规格") = mf1.TextMatrix(i, 5)
    If mf1.TextMatrix(i, 6) <> "" Then Adodc1.Recordset.Fields("包装") = mf1.TextMatrix(i, 6)
    If mf1.TextMatrix(i, 7) <> "" Then Adodc1.Recordset.Fields("单位") = mf1.TextMatrix(i, 7)
    If mf1.TextMatrix(i, 8) <> "" Then Adodc1.Recordset.Fields("库存") = mf1.TextMatrix(i, 8)
    If mf1.TextMatrix(i, 9) <> "" Then Adodc1.Recordset.Fields("进价") = mf1.TextMatrix(i, 9)
    If mf1.TextMatrix(i, 10) <> "" Then Adodc1.Recordset.Fields("库存金额") = mf1.TextMatrix(i, 10)
    Adodc1.Recordset.Update     '更新表
  Else 出现错误: 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突  标示在 红色那句话 
请达人帮忙谢谢

解决方案 »

  1.   

    Adodc1.Recordset.Find "(kc.商品名称 = '" & mf1.TextMatrix(i, 1) & "' And kc.批号 = '" & mf1.TextMatrix(i, 3) & "' And kc.产地 = '" & mf1.TextMatrix(i, 4) & "' And kc.规格 = '" & mf1.TextMatrix(i, 5) & "')"
      

  2.   

    SQL语句赋值的字符串需要加上单引号Adodc1.Recordset.Find "(kc.商品名称 = '" & mf1.TextMatrix(i, 1) & "' And kc.批号 = '" & mf1.TextMatrix(i, 3) & "' And kc.产地 = '" & mf1.TextMatrix(i, 4) & "' And kc.规格 = '" & mf1.TextMatrix(i, 5) & "')"
      

  3.   

    楼主不会用循环? 这代码看得头晕啊.程序逻辑也不是很合理, 
    像If mf1.TextMatrix(i, 4) <> "" Then 这种判断其实没有必要, 即使="",赋个空字符串过去和不赋值也没多少区别.(区别在于如果该字段设计为不允许空值的话赋个空字符串反而不报错,不赋值倒要报错了.)总结下来添加记录也就这么个循环
    recordset.addnew
    for L=1 to grid1.rows -1
        For I =1 to  recordset.fields.count 
            recorsset.fields(i-1) = grid1.textmatrix(L, I)
        next
    recordset.update读记录:
    recordset.movefirst
    l=0
    do while not recordset.eof
        for I = 1 to recordset.fields.count
             grid1.textmatrix(L, i) = recordset.fields(I-1).value
        next 
        l=l+1
        recordset.movenext
    next
    表格和数据库对应的读写基本就上面这两段,针对不同的数据类型稍微加上点处理,再加上点容错处理和错误控制就可以了