【发布时间】:2009-11-30 08:03:41
【问题描述】:
如何创建具有导入 excel 文件按钮的访问表单。选择 excel 文件后,它会自动在数据库中创建一个表,其中列标题作为 excel 第一行,数据作为 excel 其他行。如果您认为我没有付出任何努力,请给我建议或参考,我自己做不好。
【问题讨论】:
如何创建具有导入 excel 文件按钮的访问表单。选择 excel 文件后,它会自动在数据库中创建一个表,其中列标题作为 excel 第一行,数据作为 excel 其他行。如果您认为我没有付出任何努力,请给我建议或参考,我自己做不好。
【问题讨论】:
对于自 2003 年以来的 Access 版本,您可以使用 File Dialog 允许用户浏览他们想要的文件,在此之前,您可以使用 API calls。如果这对您来说太过分了,您可以让用户输入文件名和路径,但您必须使用代码检查它是否存在(Dir 可能适合)。
最好使用 DoCmd 对象的TransferSpreadsheet 方法(在任何版本的 Access 中可用,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 表必须已经存在于数据库中。
【讨论】: