Vba Access VB将特定查询导出到指定的文件路径
因此,我有一个名为“我希望导出的查询”的查询,我希望在单击表单上的按钮时能够将查询导出到Excel 我在Module1中创建了这个函数来调用对话框,并确定要将查询结果保存到哪个文件路径Vba Access VB将特定查询导出到指定的文件路径,vba,ms-access,Vba,Ms Access,因此,我有一个名为“我希望导出的查询”的查询,我希望在单击表单上的按钮时能够将查询导出到Excel 我在Module1中创建了这个函数来调用对话框,并确定要将查询结果保存到哪个文件路径 Public Function ExportToExcel(strQuery As String) On Error GoTo Err_Handler Const MESSAGETEXT = "Overwrite existing file?" Dim OpenDlg As New B
Public Function ExportToExcel(strQuery As String)
On Error GoTo Err_Handler
Const MESSAGETEXT = "Overwrite existing file?"
Dim OpenDlg As New BrowseForFileClass
Dim strPath As String
OpenDlg.DialogTitle = "Enter or Select File"
strPath = OpenDlg.GetFileSpec
Set OpenDlg = Nothing
If strPath <> "" Then
If Dir(strPath) <> "" Then
If MsgBox(MESSAGETEXT, vbQuestion + vbYesNo, "Confirm") = vbNo Then
Exit Function
Else
Kill strPath
End If
End If
Else
Exit Function
End If
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12, strQuery, strPath
Exit_Here:
Exit Sub
Err_Handler:
MsgBox Err.Description
Resume Exit_Here
End Function
它总是给我语法错误。我真的不明白,因为我专门调用函数,将查询名称作为其参数传递,有什么想法吗?因为您使用的关键字不是严格要求的,所以需要将参数括在括号中,即:
Call Module1.ExportToExcel("the query I wish to export")
对于文件选择/规范,我建议使用对象,这将需要对Microsoft Office.0对象库的引用
为了提供如何实现的示例,下面是一个快速函数,演示如何提示用户指定/选择Excel文件:
Function GetExcelFile(msg As String) As String
Dim dia As FileDialog
Set dia = Application.FileDialog(msoFileDialogFilePicker)
With dia
.AllowMultiSelect = False
.Title = msg
.Filters.Clear
.Filters.Add "Excel Files", "*.xls; *.xlsx"
If .show Then
GetExcelFile = .SelectedItems.Item(1)
End If
End With
End Function
使用所需的对话框标题调用上述对话框,例如:
GetExcelFile "Enter or Select File"
如果用户在提示时按下Cancel,上面的内容将返回一个空字符串。很好,这个语法正在工作,但是现在,模块函数说找不到project或Library是不正确的?我刚才就这么做了,很明显,Access VB不识别的是'Dim OpenDlg As New BrowseForFileClass',你知道我应该加上哪个参考资料吗?
GetExcelFile "Enter or Select File"