2016-08-31 2 views
0

Summery : [Field_1]과 [Field_2]의 고유 한 조합과 고유성이 필요합니다. 참고 : 이것은 순열을위한 것이 아닙니다. 그것이 바로 어려움입니다.필드에 고유 한 조합 관계 적용

깊이 : 공급 업체 소프트웨어의 연락처를 추적하려고합니다. 벤더 기록에 많은 접촉이있을 수 있도록 옛날 방식으로 DB를 설정했습니다. 그 트릭은 연락처가 서로 관련이있을 수 있으며 상위 공급 업체 레코드와 관련되지 않을 수 있다는 것입니다. 예 :

1. SuperBrokenSoftware is a tool who's vendor I need to contact all the time. 
    2. WeMakeBadSoftware is the Vendor 
    3. Fred works for WeMakeBadSoftware 
    4. Gale works for WeHelpPeopleWhenOthersWont 

이의이 게일을 가정 해 봅시다은 SuperBrokenSoftware 내 문제를 해결하기 위해 해당 연락처입니다.

현재 계층 구조를 사용하여 SuperBrokenSoftware와 Gales 관계를 추적하는 방법은 없습니다.

내 솔루션과 같이 테이블에 이러한 관계를 추적하는 것입니다

Field1 Field2 Field3 
Fred  Gale  Gale handles specific issues for Fred 

그러나 Field_1 및 Field_2 조합에서 고유해야합니다이 솔루션 제공. 즉, 기록을 말을하는 것입니다 :

Field1 Field2 Field3 
Fred  Gale  "Gale handles specific issues for Fred" 
Gale  Fred  "Gale is awesome - Fred sucks" 

은 동일하게 볼 수 있습니다. 레코드 2는 고유하지 않기 때문에 데이터베이스에 허용해서는 안됩니다.

내가 시도하는 것 :

는 전단 사를 사용하여 - Szudzik의 기능을 : A> = B를? a * a + a + b : a + b * b; a, b> = 0

모든 조합에 대해 고유 한 식별자를 계산할 수 있지만 액세스는 계산 된 필드에 고유성을 적용 할 수 없습니다.

Access에서 조합을 시행하는 가장 좋은 방법은 무엇입니까?

미리 감사드립니다.

답변

0

고유 인덱스가있는 고유 식별자에 대한 새 필드를 만들고 새 필드에 계산 된 식별자를 삽입/변경해야하는 변경 전 데이터 매크로를 만듭니다.

고유 키를 그냥 연결이 작동하지 않습니다 필드 1과 FIELD2

+0

의 연결을 정렬 할 수 있습니다, 그러나 나는 생각 아이디어 수도 사용자 정의 절차 필드를 채우는 대신 계산 된 필드를 사용하는 방법에 대한. 오류 및 기타 문제를 제대로 잡으려면 VBA를 사용해야합니다. Before Update 이벤트를 특정 테이블에 묶는 방법은 무엇입니까? –

+0

연결이 작동하지 않는 이유를 이해하지 못했습니다. 귀하의 예에서 키 필드 데이터는 두 경우 모두에서 'FredGale'입니다. 데이터 매크로를 사용하는 방법에 대한 도움말을 읽으십시오. 테이블 생성자에서 사용할 수 있습니다. –

+0

예제는 예제 일뿐입니다. 실용적인 응용 프로그램에서는 이것은 무엇이든 포함 할 수있는 많은 행을 처리해야합니다. 내가 말했듯이, 해결책을 찾은 후에는 오류와 예외를 피하기 위해 제대로 구축해야합니다. –