У меня есть электронная таблица с внешней таблицей данных, поступающей из SQL Server с запросом, который возвращает данные, специфичные для каждого пользователя. Я поместил в этот файл инструкции, чтобы разрешить его загрузку один раз, а затем отсоединить его.
К сожалению, один пользователь этого не сделал, добавил целую кучу данных, «сохранил» и потерял свою работу.
Есть ли способ вернуть данные?
решение1
Извините, вам не повезло. Поскольку вы отметили «Удалить данные из внешнего диапазона дат перед сохранением рабочей книги», добавленные данные не были сохранены, и нет места, откуда можно было бы извлечь данные пользователя.
Чтобы предотвратить подобные инциденты в будущем, я бы включил поддержку макросов в рабочей книге (.xlsm), если это еще не сделано, и добавил проверку в событие BeforeSave, чтобы увидеть, была ли отменена связь с таблицей.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim sMsg As String
' Assuming the data table is the first table on the first worksheet
With Worksheets(1).ListObjects(1)
If .SourceType <> xlSrcRange Then
sMsg = "Any changes you've made to the table won't be saved unless you unlink from the database!" _
& vbCrLf & vbCrLf & "Do you want to unlink?"
If MsgBox(sMsg, vbExclamation + vbYesNo) = vbYes Then
.Unlink
End If
End If
End With
End Sub