【发布时间】:2018-11-07 05:34:32
【问题描述】:
我有一个 Access 数据库,它创建文件并将它们保存到内部网络上的 Sharepoint。在两种情况下,文件是 Word 文档,将它们保存到 Sharepoint 可以正常工作。其中两个文件是 Excel 电子表格,使用 save 或 savecopy 保存它们不起作用。最后一个文件是 PowerPoint,保存也失败了。
有效的 Word 保存如下所示:
Set objWord = New Word.Application
Set objDoc = objWord.Documents.Add
objWord.Visible = True
Set objSelection = objWord.Selection
Set objRange = objDoc.Range
Creation of document
Dim SPAddress As String
SPAddress = GetSPAddress(iProjectId) & "ProjectFactSheet_" & sSiteName & "_" & Format(Now(), "yyyymmddhhnnss") & ".docx"
objDoc.SaveAs SPAddress
失败的 Excel 保存如下所示:
Set oExcelApp = CreateObject("Excel.Application")
oExcelApp.Visible = True
oExcelApp.AskToUpdateLinks = False
oExcelApp.DisplayAlerts = False
oExcelApp.Workbooks.Open ("c:\apps\" & strReportName)
SPAddress = GetSPAddress()
oExcelApp.ActiveWorkbook.SaveAs SPAddress & strReportName
- savecopyas 也会出错。
此操作失败,错误文件名无法访问。该文件可能已损坏,位于没有响应或只读的服务器上。
Public Function GetSPAddress(Optional lngQuaID As Long) As String
GetSPAddress = ""
If IsNull(lngQuaID) Or lngQuaID = 0 Then
GetSPAddress = DLookup("SPBasePath", "AppData")
Else
If IsNull(DLookup("[SPPath]", "QualificationLog", "[QuaID] = " & lngQuaID)) Then
GetSPAddress = DLookup("SPBasePath", "AppData")
Else
GetSPAddress = DLookup("[SPPath]", "QualificationLog", "[QuaID] = " & lngQuaID)
End If
End If
End Function
【问题讨论】:
-
用于保存的路径是什么,与工作 Word 路径相比如何?
-
SP文件夹的路径相同。只有文件名不同。
-
请使用问题下方的edit 链接添加
GetSPAddress的代码。我确实注意到,对于 Word,您将一个值传递给此方法,但对于不起作用的代码却没有? -
如果您
Debug.PrintExcel 路径可以手动保存到该位置吗? -
是的,我可以手动保存。
标签: excel vba ms-access sharepoint ms-word