2013-08-02 2 views
4

MS Query가 작동하도록 데이터 소스로 Excel 파일을 연결할 수 있습니다. 그러나 파일을 이동하면 쿼리가 네트워크의 이전 위치에서 찾으려고 시도하고 실패합니다.
나는 그저 스스로 시도하고 질문하기를 원한다.
데이터 소스의 연결 문자열에서 디렉토리 경로를 제거하려고했지만 오류가 발생했습니다.Excel에서 MS Query를 사용하여 자체 쿼리 (외부 소스가 아님)

이것도 가능합니까?
더 좋은 방법이 있습니까?

답변

2

VBA를 사용할 수 있습니까?

Sub UpdateQuery() 
    'This is just an example. Query must be changed accordingly 
    ThisWorkbook.Connections(1).ODBCConnection = "SELECT `Sheet1$`.a, `Sheet1$`.b FROM `" & ThisWorkbook.FullName & "`.`Sheet1$` `Sheet1$`" 
End Sub 

Private Sub Workbook_AfterSave(ByVal Success As Boolean) 
    If Success Then UpdateQuery 
End Sub 

Private Sub Workbook_Open() 
    UpdateQuery 
End Sub 
+0

예 내가 VBA를 사용할 수 있지만이 경우에는 엑셀 쿼리 셰어에서 생성됩니다 : 당신이 할 경우, 당신은 쿼리 문자열을 업데이트에서 ThisWorkbook 코드를 배치 할 수 있습니다. 그래서 일하지 않을거야. 코드가 SQL 쿼리를 변경하는 것으로 보이지만 실제 연결 문자열이나 소스 파일 위치는 변경되지 않습니다. – zoonosis

+0

ODBCConnection에서 연결 문자열과 쿼리 문자열을 구분하지 못했습니다. 아니요, 이것은 소스 파일을 변경할 수 없습니다 - 파일을 Excel에서 열 수 없습니다! 파일을 열거 나 저장할 때마다 연결을 업데이트합니다. –

+0

"또는"이 아닌 "원본 파일 위치 중"을 읽어야합니다. 내가 말하는 연결 문자열은 컴퓨터의 파일 위치 (예 : c : \ my documents 또는 d : \ data)입니다. 파일을 이동하면 쿼리가 실패합니다. 위치를 업데이트하거나 파일이 현재있는 로컬 폴더를 보는 방법이 필요합니다. – zoonosis