2011-12-27 2 views
0

내가하려는 것은 기존 MS Access 응용 프로그램을 프런트 엔드와 분리하는 것입니다. 사용자의 컴퓨터에서 로컬로 실행)와 백엔드 (네트워크 파일 서버에서 호스팅 됨)를 사용하고 사용자가 "읽기 전용"모드와 "쓰기"모드 중 하나를 선택할 수 있도록합니다. 아이디어는 단 한 명의 사용자 만 한 번에 "쓰기"모드를 사용할 수 있기 때문에 동일한 고객이 여러 고객에게 할당되는 것을 방지 할 수 있습니다. 내 문제는 응용 프로그램이 현재 동시성을 처리한다는 것입니다. 사용자가 .ldb 파일이 없으면 (현재 읽기 전용 모드가 아님) 응용 프로그램 만 입력하도록 허용하는 .bat 파일을 열어야하므로, "읽기 전용"모드에서 프로덕션 데이터에 액세스하는 사용자가 .ldb 파일을 만들고 다른 사용자를 철저히 차단합니다.MSAccess에서 VBA (ADODB)를 사용하여 원격 DB에있는 레코드를 잠금 해제하여 로컬 DB에 데이터를 추가합니다.

이 구현을위한 가장 큰 과제는 로컬로 설치된 MS Access (.mdb) 파일의 임시 테이블에 대한 쓰기 권한이 있어야한다는 것입니다. 링크 된 테이블을 사용하여이 구현하려면 노력하고 있지만 레코드 (.ldb 파일을 만드는) 연결된 테이블을 사용하여 잠겨 때 제어 할 수 있는지 모르겠습니다.

답변

1

공유 설정을 다시 독점 모드로 변경할 수 있습니다. 그러면 한 번에 한 사람 만 파일에 액세스 할 수 있습니다. 이 링크 및 다른 공유 옵션을 확인하십시오.

http://office.microsoft.com/en-us/access-help/set-options-for-a-shared-access-database-mdb-HP005188297.aspx

사이드 참고 : 이궁. 공유 네트워크 환경에서 Access를 사용하는 것은 재미있는 일이 아닙니다. 나는이 파일에 중요한/시간에 민감한/보안이 필요하지 않기를 바랍니다. 삭제되지 않고 다른 사용자를 차단하는 .ldb 파일은이 상황에서 정기적으로 발생하는 것을 보는 데 사용됩니다. Access 파일을 프런트 엔드와 백엔드로 분할하는 것이 첫 번째 단계라고 생각합니다. 그런 다음 연결된 테이블을 SQL Server 데이터베이스에 사용하면 이러한 문제를 해결하는 데 도움이됩니다. 그러나이 정도의 노력을한다면 Access를 버리고 COTS 제품을 얻거나 새로운 응용 프로그램을 만드는 것이 좋습니다.

+0

+1 쪽지. –

0

사용중인 Access 버전에 따라 UI 개발의 융통성이 중요합니다. 즉, 이것은 "데이터베이스"문제에 부합하는 것처럼 "인터페이스"문제와 비슷하게 들립니다. 누구나 테이블에 글을 쓸 수 있다면 특정 것이 인벤토리에 추가되었는지 여부에 관계없이 다소 실시간으로 확인할 수 있습니다 (성능은 더 큰 데이터 세트에서 문제가 될 수 있음).

나는이 문제를 처리 할 때 두 개의 테이블 (incomming and outgoing log)을 가지고 있으며, 제품의 양에 대한 목록을 계산하는 쿼리를 설정했다. 그리고 총계정 원장처럼 2 년 전에 발생한 질문을 고려하지 않도록 "로그 닫기"(월별, 분기 별) 시간을 설정하십시오.

관련 항목에 대한 액세스에 대한 추가 도움이 필요하면 Access Monster은 액세스 외에는 좋은 포럼 사이트입니다.

0

내 문제는 응용 프로그램이 현재 만의 .ldb 파일이 이미 존재하지 않는 경우이를 응용 프로그램을 입력 할 수있는 .BAT 파일을 열려면 사용자 요구함으로써 동시성을 처리하는 것입니다 (더 읽기 전용 모드는 현재 없음) 따라서 "읽기 전용"모드에서 프로덕션 데이터에 액세스하는 사용자가 .ldb 파일을 만들고 다른 사용자를 unessarily 차단하지 못하도록해야합니다.

-> 모든 사용자가 자신의 컴퓨터에 프런트 엔드의 자신의 사본이있는 경우, 당신은 백엔드의 .ldb 파일을 확인해야 할 것이다.당신이 말한

:

나는 모든 사람에게 제공 백엔드에 대한 액세스를 작성하고 백엔드에서 "사용자 X에 의해 잠겨"필드 프로그래밍 실제 쓰기를 쉽게 관리 할 것 같아요 이 모든 사용자를 착용하는 유일한 이유 인 경우 재고의 같은 부분을 방지하는 것은 mutliple 고객

  1. 에 할당되고 있지만, 읽기 전용 모드에서 인벤토리 테이블에 "locked by User X"필드를 넣을 수 있습니다. 누군가가 재고 목록을 수정 (또는 열어도)하기 시작하면 사용자 이름으로 레코드를 업데이트하고 완료되면 사용자 이름을 다시 삭제하십시오.
    다른 사용자가 동일한 인벤토리를 열려고 시도하면 첫 번째 사용자의 이름이 이미 "사용자 X가 잠근"필드에 있으므로 두 번째 사용자를 읽기 전용 모드로 설정할 수 있습니다.

  2. 재고 조각이 유일한 문제는 정말 빨리 이미 다른 사람이 편집 될 때 아무것도을 변경할 수 없습니다 다른 모든 사용자가 아닌 경우

    , 당신은 하나의 열과 하나의 행으로 새 테이블을 만들 수 있습니다 이것을 "사용자 X가 잠근"필드로 사용하십시오. 내부에 사용자 이름이 있으면 모든 사용자를 읽기 전용 모드로 설정할 수 있습니다.

는 상관없이 당신이, 당신이 편집하는 동안 누군가가 프런트 엔드 충돌의 경우, 그래서 관리자 메뉴의 어떤 종류를 제공해야합니다 어떻게, 다른 사람이 (이 사용자의 고정 데이터의 잠금을 해제 할 수있을 필요가 없다 = 삭제 "사용자 X에 의해 잠김"필드에서 그의 사용자 이름).