문제

예를 들어 제품 테이블의 제품을 표시하는 Access 2007 양식을 만들었습니다.Product 테이블의 필드 중 하나는 이 제품의 상위 카테고리에 해당하는 CategoryID입니다.

양식에서 CategoryID는 Category 테이블에 바인딩된 콤보 상자로 표시되어야 합니다.여기서의 아이디어는 매우 간단합니다.새 카테고리를 선택하면 제품 테이블의 CategoryID가 업데이트됩니다.

제가 겪고 있는 문제는 새 Category를 선택하면 Product 테이블의 CategoryID를 업데이트하는 대신 Category 테이블의 CategoryName이 업데이트된다는 것입니다.그 이유는 콤보 상자가 Category 테이블의 CategoryName에만 바인딩되어야 하기 때문입니다.

현재 제품의 CategoryID가 12이고 Category 테이블의 CategoryName "Chairs"인 경우 새 값을 선택하면 콤보 상자의 "Tables"(CategoryID 13)가 CategoryID 12를 새 값으로 업데이트한다고 가정하겠습니다. Product 테이블 CategoryID를 13으로 업데이트하는 대신 CategoryName "Tables".

Access에 존재했던 데이터 텍스트 필드가 CategoryName이고 데이터 값 필드가 CategoryID이고 선택한 콤보 상자 항목이 변경되면 제품의 CategoryID만 업데이트되도록 Category 테이블을 콤보 상자에 바인딩하려면 어떻게 해야 합니까? ?

편집하다: 아래에서 허용되는 답변을 참조하세요.또한 열 개수를 2로 변경해야 했고 모든 것이 완벽하게 작동하기 시작했습니다.

도움이 되었습니까?

해결책

콤보 상자에 대한 쿼리에서 두 값을 모두 사용해야 합니다.
예를 들어CategoryTable에서 CategoryId, CategoryName을 선택합니다...콤보 상자를 첫 번째 열인 CategoryId에 바인딩합니다.콤보 상자의 열 너비를 0in(두 번째 값이 필요하지 않으므로 제한이 없음)으로 설정합니다.그러면 선택한 값이 포함된 첫 번째 열이 숨겨집니다.설명 값을 표시하는 모든 항목이 보고 싶은 전부입니다.따라서 이제 콤보 상자에서 다른 옵션을 선택하면 콤보 상자에서 반환되는 값은 CategoryName이 아닌 바인딩된 값 CategoryId가 됩니다.

아, 네 앨리슨, 죄송합니다. 콤보박스 열 개수 = 2로 설정하는 것을 잊어버렸습니다.

다른 팁

또한 카테고리 테이블의 CategoryName 필드에 기본 키가 있는지 확인해야 합니다.원래 구성에서는 업데이트가 키를 위반한다는 오류나 메시지를 표시해야 합니다.동일한 이름을 가진 카테고리가 2개 있을 수 있는 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top