我的EXCEL资料里面的商品不是很全面,例如有商品名称就型号,没库存数量.我导入时就出错了!!!!谢了!各位大哥!Private Sub Command3_Click()
Call OpenConn
SQL = "select * from 商品信息"
rs.Open SQL, cn, 1, 3
Dim excela_app As Object
Set excel_App = CreateObject("Excel.application")
excel_App.Workbooks.Open FileName:=Text1.Text '打开选择好的EXCEL
i = 2
Do
If Len(Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 1))) = 0 Then Exit Do             '如所取数据长度为0则退出
rs.AddNew
rs.Fields("商品编号") = Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 1))
rs.Fields("商品名称") = Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 2))
rs.Fields("规格型号") = Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 3))
rs.Fields("库存数量") = Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 4))rs.Update
i = i + 1
Me.ProgressBar1.Visible = True
Me.ProgressBar1.Value = iLoopexcel_App.ActiveWorkbook.Close False      '不保存关闭Workbook
MsgBox "共导入" & Format$(i - 2) & "种商品.", vbInformation, "提示:"

解决方案 »

  1.   

    IsNumeric("")  判断是否数字  
    if not IsNumeric(text1) then 
      msgbox "text1中不是数字"
    end if 
      

  2.   

    这样写:
    rs.Fields("商品编号") = Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 1)) & ""
    就可以了
      

  3.   

    我不是写了个函数吗? 
    难道你不会写判断语句?
     如果不是数字 就不执行ADDNEW? 
    或者  不是数字 就变成0 
      

  4.   


    大哥,我那只是把EXCEL导入,没有用到TEXT1哦!
      

  5.   


    '楼主,借用你的代码啊,我就不调试了.你看一下,我改的地方
    '因为没有调试,不保证没有错误,但是思路是可以借鉴的.
    Private Sub Command3_Click() 
      Call OpenConn 
      SQL = "select * from 商品信息" 
      rs.Open SQL, cn, 1, 3   Dim excela_app As Object 
      Set excel_App = CreateObject("Excel.application") 
      excel_App.Workbooks.Open FileName:=Text1.Text '打开选择好的EXCEL 
      i = 2   Do 
        If Len(Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 1))) = 0 Then Exit Do            '如所取数据长度为0则退出 
         rs.AddNew   '增加新记录
         '注意我以下更改的
         '*****
         if len(Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 1)))<> 0 then
            rs.Fields("商品编号") = Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 1)) 
         else
            '这里可以处理如果是空的数据的信息 比如:
             rs.Fields("商品编号") = "空编号" '注意.此处的赋值要注意字符的类型 
         end if
         
         if len(Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 2)))<>0 then
            rs.Fields("商品名称") = Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 2))  
         else
           '这里可以处理如果是空的数据的信息 比如:
            rs.Fields("商品名称") = "空名称" '注意.此处的赋值要注意字符的类型 
         end if 
      
         if len(Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 3)))<> 0 then
            rs.Fields("规格型号") = Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 2))  
         else
           '这里可以处理如果是空的数据的信息 比如:
            rs.Fields("规格型号") = "空规格型号" '注意.此处的赋值要注意字符的类型 
         end if      if len(Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 4)))<>0 then
            rs.Fields("库存数量") = Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 2))  
         else
           '这里可以处理如果是空的数据的信息 比如:
            rs.Fields("库存数量") = 0 '注意.此处的赋值要注意字符的类型 '这里应该是数字型那就设为 0 吧.
         end if '*************我改的结束了,下面的还是你的代码
        rs.Update 
        i = i + 1 
        Me.ProgressBar1.Visible = True 
        Me.ProgressBar1.Value = i   Loop   excel_App.ActiveWorkbook.Close False      '不保存关闭Workbook 
      MsgBox "共导入" & Format$(i - 2) & "种商品.", vbInformation, "提示:"
      

  6.   

    别怪我骂你!!!!!!
    说你笨还真不是一般的笨  
    你不会把  TEXT1换成 Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 1))  吗?