vb 从excel表格导入到数据到access数据库问题
p1=CommonDialog1.FileNameDimconnAsADODB.ConnectionSetconn=NewADODB.Connectionconn.Ope...
p1 = CommonDialog1.FileName
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Open "PROVIDER = Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\db2.mdb"
sqlstmt = "drop table 工艺评定 " '先删除
conn.Execute sqlstmt
sqlstmt = "select * into 工艺评定 from [excel 8.0;database=" & p1 & "].[sheet1$]"
conn.Execute sqlstmt
conn.Close
Set conn = Nothing
这样能操作,但问题是我必须先删除工艺评定这个表,要不然用select * into 工艺评定这句会出错,提示表已经存在。但执行drop table工艺评定还老是出错,有时会提示正在使用,删不掉,
有什么简洁的办法吗,最好不用先删除原先的数据表“工艺评定”,我只想将对话框中的excel文件中的数据 替换assess的文件 展开
Dim conn As ADODB.Connection
Set conn = New ADODB.Connection
conn.Open "PROVIDER = Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & App.Path & "\db2.mdb"
sqlstmt = "drop table 工艺评定 " '先删除
conn.Execute sqlstmt
sqlstmt = "select * into 工艺评定 from [excel 8.0;database=" & p1 & "].[sheet1$]"
conn.Execute sqlstmt
conn.Close
Set conn = Nothing
这样能操作,但问题是我必须先删除工艺评定这个表,要不然用select * into 工艺评定这句会出错,提示表已经存在。但执行drop table工艺评定还老是出错,有时会提示正在使用,删不掉,
有什么简洁的办法吗,最好不用先删除原先的数据表“工艺评定”,我只想将对话框中的excel文件中的数据 替换assess的文件 展开
2个回答
展开全部
你只是要删除数据而不是删除表,所以用 Delete 语句而不是 Drop Table,后面不加 where 子句就是删除全部数据。
插入数据用 Insert into ... (select ...)
如果还是不行,你可以借助记录集对象 Recordset 把数据读出来,然后再写入Access,这样需要一个循环,额外花费一点时间。一般来说这样需要两个Connection对象来分连接Excel和Access,当然你的代码直接把数据库写在 Select 语句中也可以,就是不好排错。
插入数据用 Insert into ... (select ...)
如果还是不行,你可以借助记录集对象 Recordset 把数据读出来,然后再写入Access,这样需要一个循环,额外花费一点时间。一般来说这样需要两个Connection对象来分连接Excel和Access,当然你的代码直接把数据库写在 Select 语句中也可以,就是不好排错。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询