2009-07-28 3 views
0

ms 액세스 데이터베이스와 여러 ODBC 연결 테이블이 있습니다.ms 액세스 VBA에서 테이블의 odbc 데이터베이스 이름을 검색하는 방법

나는 ODBC 데이터베이스 2 세트를 가지고 있는데, 하나는 프로덕션 용이고 다른 하나는 개발 용이고 다른 이름은 개발 및 프로덕션입니다.

어떻게 VBA를 사용하여 연결된 테이블의 ODBC 정보를 얻을 수 있습니까?

+0

어떤 ODBC 정보가 필요합니까? 이는 어떤 접근 방식이 가장 효율적인지 결정합니다. –

답변

0

테이블의 로컬 이름을 사용하면 테이블의 외부 이름에 대한 MSysObjects 시스템 테이블 (일반적으로 숨김)을 쿼리 할 수 ​​있습니다.

SELECT MSysObjects.ForeignName 
FROM MSysObjects 
WHERE (((MSysObjects.Name)="LocalTableName")); 

당신이 외국 테이블에 대한 자세한 정보가 필요하면, 같은 테이블에서 '연결'열을 구문 분석에서 손을보십시오.

+0

시스템 테이블 사용은 공식적으로 지원되지 않으므로 논리적으로 안전하지 않습니다. 향후 버전에서 변경 될 수 있습니다. Access2007 ACE .accdb 파일에서이 오류를 시도하고 "레코드를 읽을 수 없으며 'MSysObjects'에 대한 읽기 권한이 없습니다." .accdb 형식의 사용자 수준 보안이 제거되었다고 생각하면 해결 방법이 있습니까? – onedaywhen

0

실제로 ODBC를 사용하여 마치 Access 데이터베이스 인 것처럼 .mdb 파일에 연결할 수 있습니다. 연결된 테이블은 해당 ODBC 연결에 나타나며 전체 ODBC 속도로 액세스 할 수 있습니다.

그런 식으로 좋은 점은 프로그램이 테이블이 연결되어 있는지 여부를 알 필요조차 없습니다. 이러한 모든 sysadmin 수준의 세부 정보를 단일 위치에 포함시키는 것이 좋습니다.

0

소스를 결정하는 내 평소의 방법은 네이티브 테이블과 마찬가지로 테이블의 이름을 바꾸는 것입니다. tblTrombone_DEVtblTrombone_PROD과 같은 접미사 또는 접두사를 추가 할 수 있습니다.

관련 문제