Ms access 从Access中保存excel工作簿的简单代码可以在一台计算机上工作,但不能在另一台计算机上工作?
好的,我搜索了又搜索,没有找到答案。我有一个非常简单的代码,可以将某些表的内容导出到excel工作簿中,然后将工作簿保存在与数据库相同的目录中。我的代码在我的计算机上运行正常,但当我尝试在同事的计算机上加载数据库时,表导出正常,但excel工作簿不会保存为给定名称。它只是给出提示并询问是否要保存Book1.xlsx。如果我禁用消息,它根本不会保存它。他的curDir不同于我的curDir,但我检查了一下,工作簿不在其中,或者数据库是在Access 2013中创建的,两台计算机都安装了Access 2013,尽管第二台不工作的计算机也安装了Access和Excel 2010。但工作簿将在Excel 2013中打开。我尝试将其更改为.xls文件,并在saveas命令中指定文件格式编号,但没有成功。我包括在我的计算机上工作的代码。我相信这很简单,请帮忙。哦,我应该说,它第一次工作很好,但现在它不工作了,我删除了第一份,所以我知道它不是不想覆盖,我只是在拔头发Ms access 从Access中保存excel工作簿的简单代码可以在一台计算机上工作,但不能在另一台计算机上工作?,ms-access,vba,export-to-excel,Ms Access,Vba,Export To Excel,好的,我搜索了又搜索,没有找到答案。我有一个非常简单的代码,可以将某些表的内容导出到excel工作簿中,然后将工作簿保存在与数据库相同的目录中。我的代码在我的计算机上运行正常,但当我尝试在同事的计算机上加载数据库时,表导出正常,但excel工作簿不会保存为给定名称。它只是给出提示并询问是否要保存Book1.xlsx。如果我禁用消息,它根本不会保存它。他的curDir不同于我的curDir,但我检查了一下,工作簿不在其中,或者数据库是在Access 2013中创建的,两台计算机都安装了Access
Public Function DeleteExcessPendragonRecords()
On Error GoTo DeleteExcessPendragonRecords_err
Dim strSQL1 As String
Dim strSQL2 As String
Dim db As DAO.Database
Dim rs1 As DAO.Recordset
Dim rs2 As DAO.Recordset
Dim oXL As Excel.Application
Dim oWB As Excel.Workbook
Dim osheet As Excel.Worksheet
Dim strSQLlinkedtables As String
Dim rs3 As DAO.Recordset
Dim currdirpath As String
currdirpath = CurDir()
'Exporting all tables into Excel Spreadsheet
Set db = CurrentDb
DoCmd.Hourglass True
Call RefreshSharePointLinks
strSQLlinkedtables = "SELECT tbl_PendragonTableNames.LocalLink FROM tbl_PendragonTableNames WHERE tbl_PendragonTableNames.ID < 15"
Set rs1 = db.OpenRecordset(strSQLlinkedtables)
Set oXL = CreateObject("Excel.Application")
oXL.Visible = True
Set oWB = oXL.Workbooks.Add
On Error Resume Next
Do Until rs1.EOF
oWB.Sheets.Add
Set osheet = oWB.ActiveSheet
osheet.Name = rs1.Fields(0)
On Error Resume Next
Dim Linkedtable As String
Linkedtable = rs1.Fields(0)
Set rs2 = db.OpenRecordset(Linkedtable)
For i = 0 To rs2.Fields.Count - 1
osheet.Cells(1, i + 1).value = rs2.Fields(i).Name
Next i
osheet.Range("A2").CopyFromRecordset rs2
rs1.MoveNext
Loop
oWB.SaveAs currdirpath & "\PendragonBackup_" & Format(Date, "yyyymmdd") & ".xlsx"
rs2.Close
rs1.Close
oWB.Close
oXL.Close
oXL.Quit
db.Close
Set oWB = Nothing
Set oXL = Nothing
Set rs2 = Nothing
Set rs1 = Nothing
Set db = Nothing
'Code continues after this, but this is the relevant part
而不是
currdirpath=CurDir
尝试:
currdirpath=CurrentProject.Path是否抛出任何错误?我看到您正在使用On Error Resume Next,我倾向于回避它,因为它隐藏了问题。我建议将调试设置更改为在所有错误上中断并手动测试。如果抛出错误,请提供错误和生成错误的语句。Hi。是的,下一个错误恢复主要针对最终用户。我通常在测试时对它进行注释。我通过添加Dim WBActive作为对象,设置WBActive=Active工作簿,然后设置WBActive.SaveAs——上面给出的名称,使它能够正常工作。但是,如果代码连续快速运行,我会收到一个错误。谢谢,我最终更改了代码的这一部分,以指定一个特定的路径,但它仍然没有按照编写的那样工作。我在上面的注释中指定了一些更改,但正如我在上面所说的,如果代码连续快速运行,我会得到错误91