我已经阅读了一些相关的主题,但仍然留给我这个问题。我想在Access数据库应用程序中编写一个函数,以编程方式从前两行开始导入Excel数据 - 这两行是标题和单位分隔符。
我希望完成以下事项:
这是Excel数据的常规格式(破折号代表数据):
Date Time Temp Dew Point Wet Bulb GPP RH Cº Cº Cº g/Kg % ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
我已经尝试了内置的Access“获取外部数据”功能,但它不会超出第2行,并且Excel文件中的额外数据在尝试导入时会引发错误,在其中停止进程轨道。
我将是第一个承认我在使用外部文件之前从未尝试为Access编写导入功能的人,因此我有点像新手。我们将非常感谢人们可以向我展示的任何帮助,并且我可以根据需要使用尝试的代码更新此内容。提前感谢大家的帮助!
- 编辑于2011年1月3日上午10:41 -
阅读Remou提出的Excel数据线程的ADO连接后,我认为这些代码可能完成这项工作,但我不确定。
Dim rs2 As New ADODB.Recordset
Dim cnn2 As New ADODB.Connection
Dim cmd2 As New ADODB.Command
Dim intField As Integer
Dim strFile As String
strFile = fncOpenFile
If strFile = "" Then Exit Sub
With cnn2
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Data Source='" & strFile & "'; " & "Extended Properties='Excel 8.0;HDR=Yes;IMEX=1'"
.Open
End With
Set cmd2.ActiveConnection = cnn2
cmd2.CommandType = adCmdText
cmd2.CommandText = "SELECT * FROM [Data$] WHERE G1 IS NOT NULL"
rs2.CursorLocation = adUseClient
rs2.CursorType = adOpenDynamic
rs2.LockType = adLockOptimistic
rs2.Open cmd2
答案 0 :(得分:6)
您可以使用TransferSpreadsheet:http://msdn.microsoft.com/en-us/library/aa220766(v=office.11).aspx
DoCmd.TransferSpreadsheet acImport, acSpreadsheetTypeExcel8, _
"Employees","C:\Data\Test.xls", True, "A3:G12"
或者你可以connect to Excel with an ADO connection。
最简单的方法是导入或链接,然后使用查询来更新电子表格数据和公共数据的相关表格。