2011-09-02 4 views
0

MS-Access에는 일련의 주문 목록이 있고 각 행에는 주문 번호, 고객 번호, 기타 필드 및 메모를 볼 수있는 버튼이 있습니다. 첨부 된 문서 파일.양식 행 (세부 사항) 버튼을 조건부로 VBA 코드로 회색화합니다.

우리 고객의 요청에 따라 두 개의 다른 두 테이블에 대한 계산에 따라 btnAnm 버튼을 회색으로 표시해야합니다 (SELECT COUNT WHERE 및 텍스트 필드가 비어 있는지 확인) .

나는 btnAnm_BeforeUpdate(...)btnAnm_BeforeRender(...)을 시도하고 잠수함에 중단 점을 넣었지만 아무 것도 트리거하지 않았습니다. btnAnm 대신에 Ordernr 컨트롤을 사용하면 동일합니다.

각 "Me."(행)에 대해 세부 VBA 코드의 함수를 트리거하여 해당 하위 행의 컨트롤 속성을 설정하고 싶습니다.

어떻게해야합니까? 도움말 파일을 살펴본 후 여기에서 검색했습니다.

* 편집 : 그래서 "그런 식으로 일하지 않는다"는 것을하고 싶습니다. 예. 세부 정보에서 이벤트가 트리거되지 않습니다. 다른 방법으로, 현재 행의 'Ordernr'필드와 다른 테이블 및 빈 필드 검사에서 SELECT COUNT의 결과를 기반으로 한 쿼리의 각 줄에 확인란의 값을 설정할 수 있습니까?

목록에있는 쿼리에서이 작업을 수행합니까, 아니면 여분의 확인란 필드를 쿼리에 바인딩 할 수 있습니까?

(COUNT와 WHERE "not empty"를 yes/no 체크 박스 값에 결합하는 방법에 대한 설명은 완벽하게 수용 할 수 있습니다.) :) *

+0

일부 코드를 표시 할 수 있습니까? 특히 코드를 트리거하려는 곳 – JMax

+0

어디에 코드를 넣을 수 있도록 각 세부 행에 대해 트리거되는 가져옵니다 (내가?) 묻습니다, 코드는 btnAnm.ForeColor = 0 now ...;) –

답변

3

언 바운드 컨트롤을 연속형으로 많이 사용할 수 없으며 현재 레코드에만 적용됩니다. 클릭 이벤트로 바운드 컨트롤을 사용하여 단추처럼 작동 할 수 있습니다.

는 아마도 관련 문서가 당신이 컨트롤을 만들 수 있다는 것을 의미 양식에 표시되는 주문 번호에 대한 참조를 가지고, 우리가 이렇게 같은 컨트롤 원본으로, 그것을 CountOrders를 부르 자 :

=DCount("OrderID","QueryName","OrderID=" & [OrderID]) 

컨트롤을 숨길 수 있거나 텍스트 상자와 함께 사용하기 위해 true 또는 false를 반환하도록 설정할 수 있지만 조건부 서식에도 사용할 수 있지만 슬프게도 명령 단추에는 사용할 수 없습니다.

Expression Is [CountOrders]>0 

내용을 숨기고 클릭 이벤트를 추가하여 명령 단추 대신 사용할 수도 있습니다. 조건부 서식을 사용하면 텍스트 상자를 사용하거나 사용하지 않도록 설정할 수 있습니다.

+0

' 두 행렬의 결과로 어떤 행의 색을 바꾸거나 체크 박스의 값을 설정하는 것만으로 행을 어떻게 든 '마킹'하는 것만으로도 매우 만족 스럽습니다. 사용자가 주문에 첨부 할 읽을 메모/문서가 있는지를 알 수 있도록 표시됩니다. –

+0

@Henrik 몇 가지 메모를 추가했습니다. – Fionnuala

+0

사실, 추가 컨트롤 + 컨트롤 소스가 필요합니다. 우리의 경우 버튼을 회색으로 표시하는 대신 고객 옆에있는 체크 박스를 사용하는 것이 허용됩니다. 감사! –

2

질문을 이해하면 각 행에 나타나는 명령 단추가있는 연속 양식이 있으며 행의 내용에 따라 단추를 조건부로 사용/사용하지 않도록 설정하려는 경우

불행히도 그렇게 할 수 없습니다. 개별 명령 단추를 개별적으로 참조 할 수없는 것 같습니다.

과거에 비슷한 일을하고 싶었 기 때문에 인터페이스를 설정하는 두 가지 다른 방법이 생겼습니다.

  1. 단추의 onClick 코드에 함정을 넣으십시오. 그것은 사용자에게 직관적이지 않기 때문에 icky입니다.하지만 이제 그 기능을 사용할 수 있습니다.
  2. 명령 단추 (및 편집 가능한 필드)를 양식 머리글로 옮기고 행을 읽기 전용으로 만듭니다. 그런 다음 사용자는 헤더의 레코드와 상호 작용하고 아래 목록에서 작업 할 레코드를 선택합니다. 내가 상기 한 바와 같이 이것은 Master-Detail 인터페이스로 알려져 있습니다.
+0

헤더, 반복 된 세부 정보 및 바닥 글이있는 양식입니다. 레. 1, 그게 다야. 클릭 할 수있는 항목 (비어 있지 않음)을 알려주는 클릭 가능한 항목이 있으면 빈 주문 양식을 표시하는 것만 큼 나빠질 수 있습니다. 이는 내가 막으려 고하는 것입니다. 레. 2, UI를 변경하는 것은 지금 옵션이 아닙니다. –

+0

Re # 1 - 말했듯이, 그것은 칙칙합니다. 재 : # 2 - 모든 기술에는 한계가 있습니다. 이것이 그 중 하나입니다. – BIBD

관련 문제