Ms access Access中的简单导入表单
如何创建具有“导入excel文件”按钮的access窗体。选择excel文件后,它会自动在数据库中创建一个表格,表格标题为excel第一行,数据为excel其他行。如果您认为我没有付出任何努力,请给我建议或参考,我会自己做。如果我们假设您能够创建表单并连接按钮,您有两个问题:Ms access Access中的简单导入表单,ms-access,forms,Ms Access,Forms,如何创建具有“导入excel文件”按钮的access窗体。选择excel文件后,它会自动在数据库中创建一个表格,表格标题为excel第一行,数据为excel其他行。如果您认为我没有付出任何努力,请给我建议或参考,我会自己做。如果我们假设您能够创建表单并连接按钮,您有两个问题: “文件打开”对话框 触发导入 对于1,您应该能够使用标准的Microsoft文件对话框-my VB.OLD和Access非常生锈(no Access 2007),但是您可以从Access中引用适当的COM程序集,之后就变得
就工作而言,表单是人们希望您能够在没有太多帮助的情况下完成的事情-但是,自动从excel导入之类的事情并不一定显而易见。对于2003年以来的Access版本,您可以使用允许用户浏览他们想要的文件,在此之前,您可以使用。如果这对您来说太过分了,您可以在文件名和路径中输入用户类型,但是您必须使用代码检查它是否存在(Dir可能适合)
最好使用DoCmd对象的方法(从AFAIK,1997年起的Access的任何版本中都可以获得)来导入电子表格。这可以作为VBA(代码)或宏运行。使用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表。我建议不要在任何版本的Access中使用Office文件对话框,而是使用Windows API版本。这意味着您不必处理后期绑定或维护引用。此外,MS有一个习惯,即从Office的更高版本中提取功能(例如,FileSearch对象,从Office 2007中删除),而API调用将始终有效。同样,我要说的是,正如我在Remou的回答中所做的那样,当你可以对Windows API做同样的事情,并且几乎没有更多的代码时,最好避免依赖Office库。API版本将始终有效,但MS可能有一天会选择从Office库中删除文件对话框(就像他们在Office 2007中对FileSearch对象所做的那样)。