0
Microsoft Query를 통해 액세스 데이터베이스에 연결된 몇 개의 테이블이 있습니다. 액세스 파일의 위치를 이동하거나 다른 사람과이 파일을 공유해야하므로 특히 원본 위치를 업데이트 할 방법이 필요합니다.vba를 사용하여 Excel에서 MS 쿼리 데이터 소스를 변경하는 방법은 무엇입니까?
모든 연결은 ODBC이며 동일한 액세스 파일입니다.
Microsoft Query를 통해 액세스 데이터베이스에 연결된 몇 개의 테이블이 있습니다. 액세스 파일의 위치를 이동하거나 다른 사람과이 파일을 공유해야하므로 특히 원본 위치를 업데이트 할 방법이 필요합니다.vba를 사용하여 Excel에서 MS 쿼리 데이터 소스를 변경하는 방법은 무엇입니까?
모든 연결은 ODBC이며 동일한 액세스 파일입니다.
모든 연결이 균일하므로 각 파일을 반복하고 현재 소스 파일을 Windows 파일 탐색기를 통해 선택한 파일로 바꿉니다.
Sub SwitchODBCSource()
Dim conn As WorkbookConnection
Dim sOldConnection As String, sNewConnection As String
getfilePath = Application.GetOpenFilename()
FileType = ".accdb"
If InStr(getfilePath, FileType) Then
fileName = Dir(getfilePath)
filePath = Replace(getfilePath, "\" & fileName, "")
For Each conn In ActiveWorkbook.Connections
With conn
conn.ODBCConnection.BackgroundQuery = False
conn.ODBCConnection.CommandType = xlCmdSql
conn.ODBCConnection.Connection = Array(Array(_
"ODBC;DSN=MS Access Database;DBQ=" & filePath & "\" & fileName & ";DefaultDir=" _
), Array(_
filePath & ";DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;" _
))
End With
Next conn
ActiveWorkbook.RefreshAll
Call Sheet1.dropDown
Set conn = Nothing
Else
MsgBox ("Can only use " & FileType & " files")
End If
End Sub