2011-09-07 3 views
0

미리 정의 된 ODBC 연결 문자열을 사용하여 MS-Access 데이터베이스에 여러 개의 통과 쿼리를 설정했습니다. 문제는 데이터베이스가 두 개의 MySQL 데이터베이스 중 하나에 연결될 수 있다는 것입니다. 사용자가 데이터베이스를 시작할 때 DB를 선택하면 시스템이 VBA를 통해 해당 테이블을 동적으로 연결합니다 (이 작동). 그러나 선택한 데이터베이스와 일치하도록 기존 쿼리에서 ODBC 연결 문자열을 변경해야합니다. 따라서 ODBC 연결 문자열을 새 연결 문자열로 설정하는 기존의 모든 통과 쿼리를 반복하는 VBA 함수가 필요합니다. 이 작업을 수행하는 방법에 대한 아이디어가 있습니까?VBA의 기존 MS-ACCESS 통과 쿼리에 대한 ODBC 연결 문자열을 변경하는 방법

답변

2

당신이 할 수있는 쿼리 컬렉션을 루프 : 또한 필요한 데이터베이스 이름의 존재 여부를 테스트하는 InStr(qdf.Connect)와 연결 문자열을 검사 할 수

Dim qdf As QueryDef 

For Each qdf In CurrentDb.QueryDefs 
    If qdf.Type = dbQSQLPassThrough Then 
     qdf.Connect = NewConnect 
    End If 
Next 

.

+0

감사합니다. 위와 같은 연결 문자열을 변경하더라도 통과하지 않는 쿼리에 대한 연결이 설정되므로 모든 쿼리가 통과됩니다. 패스 - 스루 쿼리로만 변경을 제한해야합니다. 그러나 당신은 좋은 출발점을 제공했습니다. – Acoats

+0

@Acoats 추가 노트를 추가했습니다. – Fionnuala

+1

** qdf.Connect <> ""**에 대한 확인을 추가하여이를 해결하여 통과 쿼리만으로 제한합니다. – Acoats