【发布时间】:2016-05-04 22:55:08
【问题描述】:
此子程序在 Access 中运行以从 Excel 文件“文件名”导入数据
这个连接字符串/打开过程几乎是从 MSDN 引用中复制的,但是有一个错误。
当我单步执行时,我在 oConn.Open 行上收到“无法识别的数据库格式”。
文件名是电子表格,而不是数据库。我该如何表示?
Public Sub Import2(FileName As Variant)
Dim wb As Object, ws As Object
Dim xl As Object
Set xl = CreateObject("excel.Application")
Dim qs As String
Dim ValueString As String
Dim sConn As String
Dim oConn As Object
Set oConn = CreateObject("adodb.connection")
oConn.ConnectionString = "Provider=microsoft.ACE.OLEDB.12.0; Data Source=filename; Extended Properties=Excel 12.0 XML; hdr=yes" & ";"
oConn.Open FileName
Set wb = xl.Workbooks.Open(FileName)
Set ws = wb.worksheets("For Export")
data1 = ws.cells(2, 1)
Data2 = ws.cells(2, 2)
Data3 = ws.cells(2, 3)
'Following lines may or may not be correct. Working on the connection string
'ValueString = Format(data1, "yyyy\/mm\/dd")
'qs = "INSERT INTO MAF (FormDate) VALUES (#" & ValueString & "#)"
DoCmd.RunSQL (qs)
'CurrentDb.Execute qs
End Sub
【问题讨论】:
-
关于您的代码,我看到有两种不同的方法:adodb 和 Excel.application。如果您评论此行“oConn.Open FileName”,您的代码会按照您的预期工作吗?
-
做到了!虽然我不确定为什么。我还有很多学习要做。谢谢!