Access中的简单导入表格
如何创建一个具有导入excel文件按钮的访问表单。选择excel文件后,它会自动在数据库中创建一个表格,其中包含excel的第一行数据和excel的其他行数据。如果您认为我没有付出任何努力,请给我一些建议或参考,并且我自己也不要这样做。Access中的简单导入表格
对于自2003年以来的Access版本,您可以使用File Dialog
来允许用户浏览他们想要的文件,在此之前,您可以使用API calls
。如果这对你来说太过分了,你可以让用户键入文件名和路径,但是你必须使用代码检查它是否存在(Dir可能适合)。
最好使用DoCmd对象的TransferSpreadsheet
方法(可从任何版本的Access from AFAIK,从1997年开始)导入电子表格。这可以作为VBA(代码)或宏运行。
如果我们假设你能够创建一个表单,并线了一个按钮,你有两个问题:
- 打开文件对话框。
- 触发导入。
对于1,您应该可以使用标准的Microsoft文件对话框 - 我的VB.OLD和Access非常生锈(无法访问2007),但您可以从Access中引用相应的COM程序集, 。
2更有趣一点 - 我相信你可以通过访问内的菜单选择来做到这一点,在这种情况下,至少作为第一步,你应该能够自动执行相同的步骤 - 几乎任何你可以通过调用VBA中的相关命令从菜单中执行操作。更复杂的解决方案是创建VBA逻辑来创建链接到Excel文件的链接表,然后执行创建表查询,然后删除链接。
在努力方面,这种形式是人们希望你能够在没有太多帮助的情况下做的事情 - 但是像从Excel中导入这样的自动化不一定是明显的。
使用Access 2003将是选择一个文件,如下例:
Dim fDialog As Office.FileDialog
Dim strFile As String
Set fDialog = Application.FileDialog(msoFileDialogFilePicker)
With fDialog
.InitialFileName = "C:\temp\*.xls"
.Filters.Clear
.Filters.Add "Excel file", "*.xls"
.Filters.Add "All Files", "*.*"
If .Show = True Then
strFile = .SelectedItems(1)
End If
End With
Debug.Print strFile
注意你需要一个引用添加到Office 12的对象库
要导入您可以使用文件DoCmd对象的TransferSpreadsheet函数。例如,
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "ExcelImport", strFile, True
称为ExcelImport的Access表必须已经存在于数据库中。
再说一次,就像我对Remou的回答所做的那样,当你可以用Windows API做同样的事情并且几乎没有更多的代码时,最好避免依赖于Office库。 API版本将始终有效,但MS有一天可能会选择从Office库中删除文件对话框(就像他们在Office 2007中使用FileSearch对象一样)。 – 2009-12-01 04:35:08
我建议不要在任何版本的Access中使用Office文件对话框,而应使用Windows API版本。这意味着你不必在后期绑定或主要参考文件中搞砸。另外,MS有习惯于从Office的更高版本(例如,从Office 2007中删除FileSearch对象)中提取功能,而API调用将始终有效。 – 2009-12-01 04:33:17