2010-04-05 5 views
0

나는 간단한 Access 2003 응용 프로그램을 사용하여 일부 동료를 위해 클라이언트에서 수행해야 할 작업을 추적하고 있습니다. 각 동료에는 일련의 클라이언트가 있으며 각 클라이언트에는 특정 날짜까지 수행해야하는 일련의 작업이 있습니다. 클라이언트 ID (색인) 용 콤보 상자, 해당 클라이언트의 사례를 처리하는 사람을위한 드롭 다운 및 새 클라이언트 추가 (표준 Access 작성된 레코드 추가 단추)로 구성된 양식을 설정했습니다. . 동작은이 세 가지 요소 아래의 하위 폼에 나열됩니다.양식을 파손하지 않고 Access에서 새 레코드 추가

문제는 내가 테스트 한 첫 번째 사람이 버튼을 클릭하여 새 레코드를 추가 한 다음 채우지 않았고 드롭 다운 목록에서 다른 클라이언트를 선택하려고했기 때문입니다. Access는 이것을 선택한 클라이언트 ID를 새 레코드의 ID로 설정하려고 시도하고 중복 된 기본 키에 대해 오류를 발생시킵니다. 이 문제를 둘러싼 몇 가지 방법을 생각해 볼 수는 있습니다. 그러나 모르는 언어로 쓰레기를 함께 쓰는 것보다 우아한 해결책을 많이 듣겠습니다.

궁금한 점이 있으면 알려주세요. 고맙습니다.

+0

사용자가 실수로 ClientID 드롭 다운을 사용하여 탐색 중이며 의도하지 않게 상위 형식의 레코드에 대한 clientID가 변경되었다고 말하는 것입니까? – JohnFx

+0

오른쪽. ClientID 드롭 다운은 탐색을위한 것이기는하지만. 누군가가 새 레코드를 추가하고 ClientID를 채우지 않고 기존 레코드로 이동하려고 시도하는 경우를 제외하고는 정상적으로 작동합니다. ClientID를 인덱싱하는 것은 좋은 생각이 아니지만 클라이언트에 중복 항목이 있으면 나쁜 것입니다. –

+1

이것은 실제로 매우 일반적인 비즈니스 기능입니다. 당신의 요구에 맞는 작업 관리 소프트웨어를 찾기 위해 생각 해본 적이 있습니까? 최소한의 비용으로, 여러 사용자, 작업 등을 처리 할 수있는 턴키 소프트웨어를 찾을 수 있습니다. – PowerUser

답변

2

데이터 입력 및 탐색에 동일한 컨트롤을 사용하지 마십시오. 혼란스러워 할 것입니다. 새 클라이언트 ID를 입력하기위한 텍스트 상자를 작성하고 더 이상 클라이언트 ID 필드 (열)에 바인드되지 않도록 콤보를 변경하십시오. 많은 사람들이 그리워하는 것처럼 보인다

+0

그리고 내가 당신을 따르고 있는지 확인하기 위해서 : 나는 클라이언트 ID 텍스트 박스의 내용으로부터 새로운 레코드를 만들 수있는 새로운 빈 레코드를 만드는 현재 함수에서 새로운 클라이언트 추가 버튼을 재 와이어링한다. 그 고객을 담당하는 사람의 신분증 - 맞습니까? –

+0

그건 분명히 한 가지 방법 일 것입니다. – Fionnuala

1

한 키 사용자 인터페이스의 원칙 :

사용자가 당신이 그들을 싶지 않아 뭔가를 허용하지 마십시오.

이제 귀하의 경우에 설명 된 내용에 따라 @ 둘러보기와 클라이언트 할당을위한 별도의 콤보 상자가 필요하다는 점에 동의합니다.

그러나 어떤 이유로 든 설명하는 것을해야하는 경우 핵심은 레코드가 저장 될 때까지 클라이언트 콤보 상자를 사용하지 않도록 설정하는 것입니다. 따라서 Add New 명령 단추 뒤에있는 코드에서 콤보 상자의 .Enabled 속성을 false로 설정합니다. 양식의 AfterInsert 이벤트에서 다시 True로 설정합니다.

아이디어는 단순히 사용자가 잘못된 것을 할 수 없게 만드는 것입니다.

간단하지만 소리가 들리는 것보다 훨씬 힘듭니다. 프로그래머는 사용자 인터페이스와 동일한 방식으로 사용자 인터페이스를 볼 수 없기 때문에 거의 항상 원근감을 갖기 때문입니다. 이것이 내가 어떤 응용 프로그램에서도 아직 시도하지 않은 사용자가있는만큼 많은 버그가 발견되었다고 항상 말하고있는 이유입니다.

+0

저는 그 원칙에 동의하고 있습니다. 저는 개발과 지원이 하나로 통합되어 있기 때문에 새로운 클라이언트를 수 백 번 생성하기 위해 올바른 버튼 순서를 설명하지 않아도됩니다. 그것은 단지 사용자를 위해 작동해야합니다. 답변 해 주셔서 감사합니다. - 필자는 콤보 상자만으로는 작동하지 않아도되지만 어쨌든 제안을 실험 할 수 있습니다. –

관련 문제