연결된 테이블은 (물론 항상 그런 것은 아니지만) 환상적으로 유용 할 수 있습니다. 특히 정기적으로 변경되는 외부 정보를 처리 할 때 더욱 그렇습니다. 일반적인 예는 공급 업체가 현재 월별 가격 파일에 대한 액세스 권한을 제공하는 경우입니다. 하지만 다음 달에 파일을 발급하고 파일 이름이 "Pricelist-01-01-2016"에서 "Pricelist-01-02-2016"으로 변경되면 어떻게됩니까? 가장 먼저 발생하는 것은 링크가 끊어 질 것이므로 수동으로 업데이트해야합니다. 파일 이름을 변경할 때마다. 그것은 테이블 이름에도 적용됩니다 (물론!). 이 작업을 빠르고 쉽게 수행 할 수있는 방법이 있습니까? 질문 해 주셔서 감사합니다. 계속 읽고 방법을 알아보세요.
장면 설정 – 시나리오

Acme Trading은 매달 사용 된 모든 소모품에 대한 업데이트 된 가격표를 DataNumen. 매달 고정식에 지출 할 금액을 알 수 있도록 사무실 관리 데이터베이스에있는 해당 파일에 연결합니다.

변경 사항이 많지는 않지만 동의하실 것입니다.하지만 파일 이름을 수동으로 변경하거나 (이전 파일을 삭제하거나 삭제 한 후) 다음 절차를 거치지 않는 한 Access에서 연결된 테이블 관리자를 통해 테이블을 다시 연결합니다.
이 작업을 원하지 않았기 때문에 대신 다음 코드를 만들었습니다. 보시 겠지만 훨씬 더 쉽습니다.
Public Sub UpdateLink (tableName As String, newFileName As String) Dim objDB As Database Dim objTableDef As TableDef Dim newConnect as String Set objDB = CurrentDb Set objTableDef = objDB.TableDefs(tableName) 'format of the connection string in our case, for example, is: ' Excel 5.0;HDR=YES;IMEX=2;DATABASE=File name including path and extension type newConnect = "Excel 5.0;HDR=YES;IMEX=2;DATABASE=" & newFileName objTableDef.Connect = newConnect objTableDef.RefreshLink Set objTableDef = Nothing Set objDB = Nothing End Sub
코드 설명
보시다시피 (연결된) 테이블 이름과 함께 테이블이 연결되어야하는 새 파일의 이름을 전달합니다. 파일 이름에는 파일의 전체 경로가 포함되어야합니다. s에서 어려움을 겪을 수있는 한 가지 잠재적 영역tart는 "newConnect"변수에 배치 할 연결 문자열에 대한 올바른 형식을 가져옵니다. 올바른 형식을 찾을 수있는 많은 소스가 있지만 내가 찾은 가장 쉬운 방법 중 하나는 현재 연결된 테이블의 연결 문자열을 보는 것입니다. 이렇게하려면 "Set objTableDef = objDB.TableDefs (tableName)"줄 바로 아래에 다음 줄을 추가하면됩니다.
Debug.Print (objTableDef.Connect)
그러면 코드 편집기의 디버그 / 즉시 창에 기존 연결 문자열이 인쇄됩니다 (아직 표시되지 않은 경우 VBA 코드 편집기 화면에서 CTRL-G를 눌러 코드를 실행하기 전에 직접 실행 창의 표시 여부를 전환합니다.
경고
항상 그렇듯이 위의 코드 스 니펫은 테이블이 연결된 파일을 변경해야 할 때 시간을 절약하는 데 도움이 될 수 있지만 할 수없는 것은 액세스 파일 손상, 따라서 백업을 보관하고 다른 모든 작업이 실패 할 경우 어디로 전환해야하는지 확인하십시오.
저자 소개 :
Mitchell Pond는 데이터 복구 전문가입니다. DataNumen, Inc.는 다음과 같은 데이터 복구 기술 분야의 세계적 리더입니다. SQL 손상 복구 그리고 엑셀 복구 소프트웨어 제품. 자세한 내용은 WWW.datanumen.COM