Ms 액세스 사용 ...tabledef에서 연결 문자열이 잘못 표시되었습니다.
Access에서 SQL Server 데이터베이스에 연결된 사용자를 변경하려고합니다. 내 액세스 응용 프로그램의 시작 양식이 Microsoft의 KB에 게시 된 루틴의 변경된 버전을 통해 테이블에 동적으로 연결됩니다. Essence에서는 호출 한 localName과 일치하는 테이블 정의를 삭제하고, Currentdb.CreateTableDef를 호출하여 적절한 새 연결 문자열로 새 테이블을 작성하고 CurrentDb.TableDefs 콜렉션을 추가합니다. 내가 볼 수있는 한, 실제로 데이터베이스에 접속하고 연결 문자열이 잘못되면 오류가 발생하는 append 함수입니다.
필자의 경우 데이터베이스에있는 모든 테이블을 원래의 패스 (기존의 표준화 된 문자열)로 호출하면 모든 테이블이 정상적으로 연결됩니다.
이제 데이터베이스의 여러 권한을 테스트 할 수 있도록 새 사용자/암호 조합으로이 시작 양식을 두 번 통과하려고합니다.
나는 수정 된 이름과 암호로 새 연결 문자열을 작성했으며 방금 설명한 기능을 통해 현재 하나의 스테핑입니다.
내가 새로 만든있는 TableDef이 들어있는 변수 TD을 가지고 있고 나는 Currentdb.TableDefs 수집 디버거에서에 추가하기 직전이다 "즉치"창 ?td.connect
은 새로 형성된 연결 연결 문자열을 제공합니다 문자열을 올바르게 입력하고 ?td.name
은 테이블 이름으로 tblConfig
을 제공합니다.
그냥있는 TableDef 올바르게 내가 직접 실행 창에서 ?CurrentDb.Tabledefs("tblConfig").Connect
했다 현재 컬렉션에서 삭제되어
나는 다음 컬렉션이 그 이름을 가진 멤버를 포함하지 않았다 대화 상자로 보상을했다 보장하기 위해
CurrentDb.TableDefs.Append td
그리고 지금은 디버거 직접 실행 창 및 응답에서 다시 ?CurrentDb.Tabledefs("tblConfig").Connect
를 호출 라인을 통해 한 단계 이전 연결 문자열이 아닌 새로운 하나입니다.
이 루틴에는 OnError가 활성화되어 있지만 단일 스테핑 중에는 활성화되지 않습니다.
내가 생각할 수있는 유일한 설명은 어떻게 든 오래된 연결 문자열이 데이터베이스에 어떤 시점에 저장 한 결과로 디스크에 저장되고 마지막으로 추가 될 때 connectionstring을 통해 복사하지 않는다는 것입니다.
더 좋은 설명이 있습니까?
MS 액세스의 마법을 캐시 밝혀! –