编写环境:VB6+ACCESS2003。想将ACCESS数据库中一个数据表Oki的数据导出到 c:\abc.xls 中的xxx数据表。
用SQL语句:Select * into [Excel 8.0;Database=c:\abc.xls].[xxx] from Oki由于数据表 xxx 已存在,所以要将数据表 xxx 先删除。在建立好与c:\abc.xls的连接后,我用SQL 语句:OutDbConn.Execute "Drop Table xxx"。但执行结果却只是将XXX数据表的数据删除了,未能将数据表删除。该工作簿(abc.xls)有5个工作表。还有,用SQL语句:Select * into [Excel 8.0;Database=c:\abc.xls].[xxx] from Oki 导出生成的数据表,再用.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "Table"))的方法读取该工作簿(abc.xls),得到的相同表格名称却有两个,如:xxx 和 xxx$.请高手们帮我解答一下,谢谢!
用SQL语句:Select * into [Excel 8.0;Database=c:\abc.xls].[xxx] from Oki由于数据表 xxx 已存在,所以要将数据表 xxx 先删除。在建立好与c:\abc.xls的连接后,我用SQL 语句:OutDbConn.Execute "Drop Table xxx"。但执行结果却只是将XXX数据表的数据删除了,未能将数据表删除。该工作簿(abc.xls)有5个工作表。还有,用SQL语句:Select * into [Excel 8.0;Database=c:\abc.xls].[xxx] from Oki 导出生成的数据表,再用.OpenSchema(adSchemaTables, Array(Empty, Empty, Empty, "Table"))的方法读取该工作簿(abc.xls),得到的相同表格名称却有两个,如:xxx 和 xxx$.请高手们帮我解答一下,谢谢!
你可以判断一下目标表是否存在。(例如用 Select 读一下,并拦截错误。)如果表存在,就用 Inset Into 语句。On Error Goto EH
Set rs = OutDbConn.Execute ("Select * From [Excel 8.0;Database=c:\abc.xls].[xxx$]) '对于Excel表要用$OutDbConn.Execute "Insert Into [Excel 8.0;Database=c:\abc.xls].[xxx] Select * From Oki"A:
'......Exit SubEH:
If Err.Number = -2147217865 Then '表不存在
OutDbConn.Execute "Select * into [Excel 8.0;Database=c:\abc.xls].[xxx] From Oki"
Resume A
End If
MsgBox "实时错误" & Err.Number & ":" & vbCrLf & Err.Description