一次导入多个EXCEL文件到数据库的问题解决就给分急在线等立即给分!!!!!!!!!

taotaobao 2008-09-23 11:41:37
我导入一个EXCEL文件到数据库没问题,当我需要一次导入多个文件循环到数据库就半天没响应了 我最多可能需要一次导入100个EXCEL文件到数据库 一般这种情况是什么原因
...全文
222 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yurengang 2008-09-29
  • 打赏
  • 举报
回复
http://blog.csdn.net/jinjazz/archive/2008/07/29/2730135.aspx

1.打开xls这要打开关闭清楚,并记录
2.打开数据库执行SQL插入,这要用事物,
也就没么了,死了也知道是在哪什么问题了
LOUIVE007 2008-09-24
  • 打赏
  • 举报
回复
建议启动sql 错误捕捉,可能是在执行sql时出错,然后当前EXCEL文件在打开后没有被关闭,建议在出错时就关闭当前打开的EXCEL文件,然后清除完SQL错误后再打开一下个EXCEL文件,建议此操作需要要写一个log.
astromercy 2008-09-24
  • 打赏
  • 举报
回复
Application.DoEvents 不如引用SYSTEM.THREADING
然后对执行100个EXCEL文件导入的SUB做成线程,
通过进度条显示进度信息.
效果会好很多的
ZengHD 2008-09-23
  • 打赏
  • 举报
回复
        While (True)
Application.DoEvents()
End While

Application.DoEvents()可能对你的程序没有用,因为导出数据本身就是一个很占资料的操作
taotaobao 2008-09-23
  • 打赏
  • 举报
回复
具体要怎么做 我循环导入就会死掉有没有什么方法做到
ZengHD 2008-09-23
  • 打赏
  • 举报
回复
想简单点使用Application.DoEvents
想效果好点,就使用多线程
sunxinyu 2008-09-23
  • 打赏
  • 举报
回复
对了,我上面那个例子是excel导入Access的
jinjazz 2008-09-23
  • 打赏
  • 举报
回复
参考ssis
http://blog.csdn.net/jinjazz/archive/2008/07/29/2730135.aspx
sunxinyu 2008-09-23
  • 打赏
  • 举报
回复
下面是以前的VB6下的代码,参照这修改一下吧。

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Private dom As Access.DoCmd

Private Sub Form_Load()
'Set adocon = Server.CreateObject("adodb.connection")


Dim sFiles() As String
Dim lTask As Long, lret As Long, lHandle As Long

dlg1.InitDir = App.Path
dlg1.ShowOpen

ShellExecute 0&, vbNullString, dlg1.FileName, vbNullString, App.Path, vbNormalFocus



s = Dir(App.Path + "\*.*")

If s <> "" Then


ReDim sFiles(0) As String
i = 1
s = Dir(App.Path + "\*.xls")
While s <> ""
ReDim Preserve sFiles(i) As String
sFiles(i) = s
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, Mid(s, 1, Len(s) - 4), App.Path + "\" + s, True, ""


i = i + 1
s = Dir()
Wend
End If



'DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel9, "juan", "C:\Documents and Settings\sss\桌面\月度报表0607.xls", True, ""
End Sub
cauhorse 2008-09-23
  • 打赏
  • 举报
回复
如果不嫌慢的话。。
启动个Timer慢慢写,
顺便搞个进度条给自已提示下。。。
tjficcbw 2008-09-23
  • 打赏
  • 举报
回复
这个有几个关键点
1.打开xls这要打开关闭清楚,并记录
2.打开数据库执行SQL插入,这要用事物,
也就没么了,死了也知道是在哪什么问题了
dzbrsc 2008-09-23
  • 打赏
  • 举报
回复
不知道你循环怎么写的

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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