각 사용자에게 특정한 데이터를 반환하는 쿼리가 포함된 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