2017-05-04 3 views
0

또 다른 초보자 질문이지만 이번에는 MS Access Controls에 관한 것입니다. 많은 항목으로 가득 찬 목록 상자가있는 양식이 있습니다. 내가해야 할 일은 목록 상자에 저장된이 항목 중 하나를 두 번 클릭하면 모든 텍스트 상자가 내 테이블의 같은 행과 다른 필드에 저장된 항목으로 채워져 있어야합니다.목록 상자에있는 항목을 클릭하면 텍스트 상자 doble을 자동으로 채 웁니다.

많은 자습서를 이미 확인했지만 좋은 해결책을 찾지 못했습니다.

도움 주셔서 감사합니다.

편집 :

나는 여러 개의 필드가있는 테이블을 가지고 있습니다. 목록 상자에는 첫 번째 필드 (ID)의 항목이 있습니다. 내 양식의 텍스트 상자로 표시되는 나머지 필드 (타일, 배달 날짜 등).

두 번 클릭하면 목록 상자에서 항목을 하나 클릭하면 텍스트 상자가 채워집니다. 내 테이블에서 다섯 번째 행을 나타내는 내 목록 상자에서 다섯 번째 항목을 선택하면 모든 텍스트 상자에 테이블에 표시된 필드의 같은 행에있는 항목이 있어야합니다.

이 양식으로 테이블에 저장된 데이터 만 편집하고 싶습니다.

+0

*해야하는 위치 내 테이블에서 * 같은 행에서 다른 필드에 저장된 항목을 가득 모든 텍스트 상자 - 이것은 이해하기 어렵습니다. 질문을 명확하게 편집 할 수 있습니까? – Andre

답변

0

오케이 마침내이 문제에 대한 해결책을 얻었습니다.

DLOOKUP을 사용하여 두 번 클릭 이벤트 후 데이터를 내 양식으로 가져 왔습니다.

Dim ctrloop 

For Each ctrloop In Me.lbReportID.ItemsSelected 
     strReportID = Me.lbReportID.ItemData(ctrloop) 
Next ctrloop 

Me.txtTitle = DLookup("[Title]", "tblreports", "[ID No] = '" & strReportID & "'") 

루프는 테이블에있는 모든 보고서 ID를 저장합니다. DLOOKUP을 필터로 사용합니다. SQL에서 WHERE과 같습니다.

strReportID으로 필터링 된 테이블 tblreports의 제목 필드를보고 프로그램이 실행될 때 내 제목 텍스트 상자가 채워집니다.

그것은 유사 내가 다른 텍스트 상자에 사용하여이 SQL 쿼리처럼 일하고 :

SELECT tblReports.[ID No] 
FROM tblReports 
WHERE (((tblReports.WorkPacage) = 'CDS')) 
    AND (((tblReports.State) <> 'Complete')); 
+0

수정 해 주셔서 감사합니다. marc_s! (^_^) –