求助EXCEL导入ACCESS时出错原因

IDtoID 2008-08-01 02:14:12
我的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 = i

Loop

excel_App.ActiveWorkbook.Close False '不保存关闭Workbook
MsgBox "共导入" & Format$(i - 2) & "种商品.", vbInformation, "提示:"
...全文
154 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
IDtoID 2008-08-01
  • 打赏
  • 举报
回复
呵呵!!大哥说的是啊!!俺的头脑移动得很慢!! 多多指教啊!!

谢谢所有大哥的帮忙哦!
_l_ 2008-08-01
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 IDtoID 的回复:]


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


别怪我骂你!!!!!!


说你笨还真不是一般的笨
你不会把 TEXT1换成 Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 1)) 吗?
fvflove 2008-08-01
  • 打赏
  • 举报
回复

'楼主,借用你的代码啊,我就不调试了.你看一下,我改的地方
'因为没有调试,不保证没有错误,但是思路是可以借鉴的.
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, "提示:"
IDtoID 2008-08-01
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 _l_ 的回复:]
我不是写了个函数吗?
难道你不会写判断语句?
如果不是数字 就不执行ADDNEW?
或者 不是数字 就变成0
[/Quote]

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


_l_ 2008-08-01
  • 打赏
  • 举报
回复
我不是写了个函数吗?
难道你不会写判断语句?
如果不是数字 就不执行ADDNEW?
或者 不是数字 就变成0
IDtoID 2008-08-01
  • 打赏
  • 举报
回复
大哥,还是不行哦!!
熊孩子开学喽 2008-08-01
  • 打赏
  • 举报
回复
这样写:
rs.Fields("商品编号") = Trim$(excel_App.Workbooks(1).Worksheets(1).Cells(i, 1)) & ""
就可以了
_l_ 2008-08-01
  • 打赏
  • 举报
回复
IsNumeric("") 判断是否数字

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

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧