2014-11-29 3 views
1

Microsoft Access .accdr 파일의 테이블에 연결할 수 있는지 여부를 확인할 수 있습니까?Microsoft Access의 연결된 테이블 - .accdr 파일을 백엔드로 사용할 수 있습니까?

.accdr 파일의 프론트 엔드가있는 분할 MS-ACCESS 응용 프로그램과 서버의 .accdb 파일 백엔드의 테이블이 있습니다. 아래에서 설명하는 이유 때문에 .accdr 확장명을 가진 두 번째 백엔드 파일 (서버에도 있음)의 테이블에 연결하려면 프론트 엔드가 필요합니다.

.accdr 파일이 백엔드 데이터베이스로 허용되지 않는다고 명시 적으로 밝혀지지 않은 문서가 발견되었지만 링크 된 테이블 관리자가 허용하지 않는 것처럼 보이고 DoCmd.DatabaseTransfer 메서드가 오류를 throw합니다.

일시적으로 .accdr 서버 파일의 이름을 .accdb로 바꾸고 데이터가 변경되도록 테이블에 연결 한 다음 .accdr로 다시 이름을 바꿉니다. 그러나 이것을하지 않으면 직접 연결하는 것을 선호합니다.

이유 : 각 클라이언트가 가장 최근에 업데이트 된 프론트 엔드 .accdr 복사본을 얻도록 필자는 시작하기 전에 프론트 엔드를 서버에서 로컬 시스템으로 먼저 복사하는 배치 스크립트를 작성했습니다. 응용 프로그램을로드 할 때마다 짧은 시간 (프런트 엔드는 약 8MB)이지만, 배치 스크립트는 클라이언트가 항상 최신 상태인지 확인합니다. (퍼포먼스가 문제가된다면, 배치 스크립트는 다운로드 전에 MD5 합계를 확인해야하지만, 아직 오지 않았다.)

나는 동시에 많은 클라이언트를 연결하지 않는다. 또는 3 개의 동시 연결), 캠퍼스에있는 수천 대의 컴퓨터에서 연결할 수 있으므로 어디에서 연결했는지에 관계없이 FrontEnd의 최신 복사본을 얻을 수있는 가장 쉬운 방법입니다.

불행히도, 개별 사용자가 세션 중에 로컬로 매개 변수를 설정할 수 있으므로 프론트 엔드에 로컬 인 테이블을 몇 개 만들었습니다. 물론 개별 사용자가 이러한 로컬 테이블을 업데이트하여 다른 모든 사용자가 동일한 데이터를 가져와야하는 경우가 있습니다. (이전에는 요청에 따라 이러한 변경 작업을 수동으로 수행했지만이 사용자는 스스로 합리적으로 수행 할 수 있어야합니다.)

따라서 로컬 프론트 엔드 .accdr 파일은 동일한 프론트 엔드 .accdr 파일을 사용하여 테이블에서 몇 가지 데이터를 조정하십시오. 그게 이유야. 나는 그것이 이상하다는 것을 안다.

감사합니다, 데이먼

+0

연결을 잘못 지정하고있었습니다. .accdr 파일을 백엔드로 사용합니다. – damon

답변

1

는 백엔드로 .accdr로 사용할 수 있습니다 밝혀졌습니다. 나는 내가 잘못된 연결이나 뭔가를 지정하고 있었다고 생각한다. 나는 strConnect = path_to_mydb.accdr으로이 코드를 사용 :

Public Sub ConnectOutput(dbsTemp As Database, _ 
strTable As String, strConnect As String, _ 
strSourceTable As String) 

Dim tdfLinked As TableDef 

' Create a new TableDef, set its Connect and 
' SourceTableName properties based on the passed 
' arguments, and append it to the TableDefs collection. 
Set tdfLinked = dbsTemp.CreateTableDef(strTable) 

tdfLinked.Connect = strConnect 
tdfLinked.SourceTableName = strSourceTable 
dbsTemp.TableDefs.Append tdfLinked 

End Sub 
0

쉽게 백엔드에 프런트 엔드에 로컬 테이블을 추가 할 수 있습니다. 하나에서 다른 것으로 복사/붙여 넣기하고 프론트 엔드에서 삭제하고 백엔드 버전에 연결하십시오. 5 분이 소요되며 VBA 코드는 필요하지 않습니다.

백엔드 질문 인 accdr과 관련하여 accdr은 런타임 버전의 Access에서 열 예정입니다. 표준 버전의 Access로 .accdr 파일을 열면 런타임 모드가 시뮬레이트됩니다. 표준 버전과 free Runtime version 사이의 유일한 차이점은 런타임 응용 프로그램에서 디자인 도구와 표준 리본에 액세스 할 수 없다는 것입니다 (create your own 필요).

accdb 파일의 이름을 accdr으로 변경하면 런타임에 데이터베이스를 열 수 있습니다. 데이터베이스 자체는 전혀 변경되지 않습니다.
accdr 파일을 문제없이 백엔드로 사용할 수 있습니다.

프로 팁 : 설정을 약간 (최대 50 명의 동시 사용자까지) 확장하고 성능을 향상 시키려면 프런트 엔드에서 백 엔드로 더미 테이블에 데이터베이스를 엽니 다. 이렇게하면 프런트 엔드가 실행되는 동안 연결이 열린 상태로 유지되고 데이터베이스에서 잠금 파일을 열어두면 성능이 향상되고 성능이 향상됩니다.

+0

감사합니다. 예. 이 경우 프런트 엔드 테이블에는 각 프런트 엔드가 별도로 유지해야하는 세션 별 사용자 변수가 들어 있습니다. 백엔드 테이블에있는 경우 동시 사용자는 각 세션 별 설정을 덮어 쓰게됩니다. 그러나 이러한 사용자 변수에 대한 기본값을 업데이트하는 방법이 필요했기 때문에 백엔드로 ACCDR에 연결할 필요가있었습니다. 덧붙여 말하자면, ACCDE 파일을 백엔드로 사용할 수 있습니까? – damon

+0

@damon 예,'accde'는 코드가 미리 컴파일되고 소스가 제거 된 데이터베이스입니다 (데이터베이스의 이름을 바꿀 수는 있지만 같은 방식으로 동작하지만 소스 코드는 물론 제거되지는 않습니다). –