2009-07-14 1 views
0

사용자 ID에 대한 검색 기준이 있고 사용자 ID가있는 직원 이름이 단일 테이블에서 오는 목록 상자 컨트롤에 표시되어야한다는 점에서 직원 데이터베이스 용 VBA 양식을 개발 중입니다.vba 테이블에서 채우기 목록 상자

방법이

+0

태그에서 이것은 Access에 관한 것입니다 - 정확합니까? 어떤 버전의 Access입니까? 어떤 종류의 백엔드인가? – YogoZuno

+0

Access 2003 및 액세스 테이블은 백 엔드입니다. – SmartestVEGA

+0

참조 : http://stackoverflow.com/questions/1123664/how-can-i-call-the-below-function-to-populate-my-access-form-list -control – Fionnuala

답변

2

을 수행하는 제발 도와주세요 : (아이디 예)

나는 검색 상자 역할을 텍스트 상자에 값에 따라 테이블에서 값 목록 상자를 채우는 데 필요 검색 필드 등의 데이터 유형과 같은 일부 항목에 따라 달라지기 때문에 질문에 대답하기가 어렵습니다. 따라서이 대답은 모호 할 것입니다. 그 점 ...

먼저 검색 값과 필터에 대한 양식을 볼 수있는 검색 기준으로 목록 상자를 만들어야합니다.

목록 상자의 RowSource 속성을 설정하면됩니다. 여기서의 필터 값에 대한 폼의 텍스트 박스를 찾는리스트 박스를위한 예시적인 행 원본 ...

SELECT tblAgencies.AgencyID, tblAgencies.OrganizationName 
FROM tblAgencies 
WHERE (((tblAgencies.OrganizationName) 
      Like "*" & nz([Forms]![frmMainMenu2]![txtSearchAgencies],"") & "*")) 
ORDER BY tblAgencies.OrganizationName; 

키 부분이 마치 ... 라인이다. 그것에 관한 몇 가지 사항은 쿼리가 양식에 대한 몇 가지 기준을 찾습니다. 쿼리의 [Forms]! [frmMainMenu2]! [txtSearchAgencies] 부분에서 확인할 수 있습니다. 따라서 frmMainMenu2에는 txtSearchAgencies라는 검색 텍스트 상자가 있습니다.

또한 NZ 함수를 사용하여 해당 텍스트 상자를 들여다 보면 적어도 빈 문자열을 반환한다는 것을 알 수 있습니다. 마지막으로 사용자가 부분 문자열을 입력 할 수 있도록 양쪽 끝에 와일드 카드를 사용하여 Like 연산자를 사용한다는 점에 주목하십시오.

마지막으로 ... 검색 상자 옆에 필터/검색을 실행하기위한 명령 단추를 넣으십시오. 해야 할 일은 다음과 같은 목록 상자를 요청하는 것입니다 ...

Me.lstAgencies.Requery.

입력시 필터링하는 OnChange 이벤트에서 다시 시도 할 수도 있습니다. 그러나 쿼리가 느린 경우이 방법이 제대로 작동하지 않을 수 있습니다.

세스

+0

나는 OrganizationName에 고정 값으로 rowsource를 지정할 가능성이 큽니다. 다시 쿼리해야하는 경우 클리너 RowSource 속성 (예 :, 컨트롤 참조 없음) 그냥 재귀 같은 이벤트에서 다시 할당 할 수 있습니까? –

+0

David, 나는 당신의 질문을 이해하지 못합니다 ... 조금 설명해 주시겠습니까? 세스 –

0

은의 당신이, 직원 필드 용자 ID가 테이블 TABLE1 있다고 가정 해 봅시다. 콤보 상자 (boxid)와 텍스트 상자 (EdtEmployee)가있는 폼을 만들어야합니다. 당신이

0

내가 MIK 동의에 대한

SELECT table1.userid FROM table1 WHERE employee like EdtEmployee & "*"; 

같은 콤보 상자의 행 원본 값을 정의하는 것은 그럼 난 희망이

Private Sub EdtEmployee_LostFocus() 
BoxId.Requery 
End Sub 

같은 텍스트 상자의 LostFocus 이벤트를 정의이 작동합니다. 난 그냥 Neber 사용 LostFocus 대신 AfterUpdate 이벤트를 사용합니다.