2016-12-06 22 views
0

테이블 (페인트)에 허용 된 여러 필드가있는 조회 필드/콤보 상자 (색상)가 있습니다. 드롭 다운은 여러 색상 옆에있는 여러 확인란을 표시합니다. 그것은 다음과 같습니다액세스 2012 년 멀티 가치 콤보 테이블에서 vba를 사용하여 하나의 값을 선택 취소하는 방법?

☑ Red 
☑ Blue 
☑ Green 

어떻게 제 1 회 녹화에서 필드의 값 '블루'를 찾아 선택을 취소 것인가? 내 양식 코드에서 Colors 필드를 참조하는 데 어려움을 겪고 있습니다.

제가 TRUE 값을 줄 것이라고 생각했습니다. 그러나 나는 개체가이 속성 또는 메서드을 지원하지 않습니다.

그래서 어떻게 색 조합 상자를 참조하고 적절한 값을 선택 취소합니까?

답변

0

열어 본 레코드 세트의 "multiselect"속성이없는 것 같습니다. 다중 선택 필드에 대한 설명은 here을 참조하십시오.

기본적으로 다중 선택 필드의 값은 그 자체가 레코드 세트라는 것입니다. 테이블의 레코드 집합 만 가져 왔지만 필드의 레코드 집합은 가져 오지 않았습니다. 잘하면 색상 표에 ID 입력란이 있으면 좋겠지 만, 그렇지 않을 경우 여기에는 다른 내용이 있지만 기본 아이디어는 동일해야합니다.

Sub test() 

Dim db As Database 
Dim rs As Recordset 
Dim childRS As Recordset 
Dim valueToDelete As Long 

valueToDelete = DLookup("ID", "tblColors", "Color = 'blue'") 
'Obviously this depends on how your table is set up.  

Set db = CurrentDb 
Set rs = db.OpenRecordset("tblPaint") 
rs.MoveFirst 

Do Until rs.EOF 
    Set childRS = rs!Colors.Value 
    childRS.MoveFirst 
    Do Until childRS.EOF 
     If childRS!Value.Value = valueToDelete Then 
      childRS.Delete 
     End If 
     childRS.MoveNext 
    Loop 
    rs.MoveNext 
Loop 

End Sub 
+0

감사 :

당신이 뭔가를 원한다! 나는 그 기회를 줄 것이다. 그냥 맑게하려면 Blue 옆의 상자를 선택 취소하고 목록에서 Blue를 삭제하지 않으시겠습니까? 그리고 예, 주 테이블 (tblPaint)에는 색상이 들어있는 다른 테이블 (tblPaintColorList)에 연결되는 숫자 필드가 있습니다. tblPainColorList는 드롭 다운을 채우는 데 사용되는 ID 및 색상입니다. – scifiguy

+0

죄송합니다. ☑ 빨간색 ☐ 파란색 ☑ 녹색 – scifiguy

+0

예, 링크 된 테이블이나 옵션 목록에서 항목을 삭제하지 않으려면 해당 확인란의 선택을 취소하십시오. – OpiesDad