Доступ к автоматизации VBA, способной сохранять документы Word в Sharepoint, но не в электронную таблицу Excel - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть база данных 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

1 Ответ

0 голосов
/ 07 ноября 2018

Единственное, что я могу предложить, это установить переменную рабочей книги при открытии отчета, чтобы вы могли быть абсолютно уверены, какой файл сохраняется (хотя сам по себе это не должно вызывать ошибку ...)

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 '<<<
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...