簡體   English   中英

訪問 VBA 自動化能夠將 Word 文檔保存到 Sharepoint 而不是 Excel 電子表格

[英]Access VBA automation able to save Word document to Sharepoint but not Excel spreadsheet

我有一個 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

我唯一能想到的建議是在打開報告時設置一個工作簿變量,這樣您就可以絕對確定哪個文件被保存(盡管這本身不應該導致錯誤......)

Dim wb As Object   '<<<
Set oExcelApp = CreateObject("Excel.Application")
oExcelApp.Visible = True
oExcelApp.AskToUpdateLinks = False
oExcelApp.DisplayAlerts = False
Set wb = oExcelApp.Workbooks.Open("c:\apps\" & strReportName) '<<<
SPAddress = GetSPAddress()
wb.SaveAs SPAddress & strReportName '<<<

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM