因此,在搜索了许多其他页面之后,我仍然遇到困难,并且由于自学VBA而不得不承认,所以请原谅:(
我用表创建了一个简单的电话计数器访问表单。我的目标是按下一个按钮,它将表导出到现有XLSM的指定目录中(导出的数据将以当前日期作为工作表名称打开一个新工作表,然后保存它。
数据库位置在这里: L:\ Reports \ TestCalltoolmetric.accdb
现有的Excel文件在这里: L:\ Reports \ Callcounterreports \ MonthlyCallCounter.xlsm
到目前为止我一直在尝试...
1。
Dim strTable As String
Dim strWorksheetPath As String
strWorksheetPath = "L:\Reports\Callcounterreports"
strWorksheetPath = strWorksheetPath & Format(Date, "ddmmmyy") & "Callreport.xlsx"
这会将我的数据库导出到一个新文件,该文件的名称为date + callreport。它可以工作,但我不知道我是否可以使用此命令来实现上述目标(文件名并不是很重要,但是在本月底我需要提供调用指标,因此我需要每天将所有内容导出到一个工作簿中,以便可以创建总计)。
2。 我尝试使用此:
DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel12Xml, "Table1", "L:\Reports\Callcounterreports\MonthlyCallCounter.xlsm"
但是错误地指出Access数据库引擎找不到对象'Table1'
3。 我还通过一些愤怒的谷歌搜索找到了一个类似的请求,但是它是基于导出查询而来的...在一个没有受过良好教育的方式下,我试图对其进行调整,但从未真正能够使它工作。.
Dim appXL As Object
Dim wb As Object
Dim wks As Object
Dim xlf As String
Dim rs As DAO.Recordset
xlf = "L:\Reports\Callcounterreports\MonthlyCallCounter.xlsm" 'Full path to Excel file
Set rs = CurrentDb.OpenRecordset("Query1") 'Replace Query1 with real query name
Set appXL = CreateObject("Excel.Application")
Set wb = appXL.Workbooks.Open(xlf)
Set wks = wb.Sheets & Format (Date, "ddmmmyy") ' Sheet name
wb.Save
wb.Close
appXL.Quit
Set wb = Nothing
rs.Close
Set rs = Nothing
我知道到目前为止,我并不是第一个问到如何做到这一点的人,但是任何帮助都是很棒的!
答案 0 :(得分:0)
SO ....经过进一步的挖掘,我发现至少使用
时我做错了什么DoCmd.TransferSpreadsheet acExport,acSpreadsheetTypeExcel12Xml,“ Table1”,“ L:\ Reports \ Callcounterreports \ MonthlyCallCounter.xlsm”
我首先必须将表从“ Table1”重命名为另一个名称,然后选择“ DataTable”。 其次,我在命令的文件路径部分犯了一个错误,该位置是一个网络位置,显示了一个驱动器号。放置完整和正确的文件路径后,表单就像一个超级按钮一样工作。 https://msdn.microsoft.com/en-us/vba/access-vba/articles/docmd-transferspreadsheet-method-access 我使用这个网站来验证我的命令,现在我以前没有找到它感到很傻。 非常感谢@dbmitch,我认为挫败感对我有好处,而不是真正阅读错误信息。