2017-12-21 40 views
1

ComboBox에 이미 일부 항목이 선택되어 있습니다.VBA 액세스 : ComboBox의 항목 수 계산 방법

VBA로 계산하고 싶습니다. 다음 문자열과 같은 것을 찾으려고했지만 Compile error: Argument not optional이되었습니다.

Me.<ComboBox_name>.ItemData.Count 

또한 다음과 같은 문자열을 사용하는 것으로 생각하지만 나에게 0 항목을 제공합니다 반면,

Me.<ComboBox_name>.ItemSelected.Count 

enter image description here

답변

3

콤보는 일반적으로 선택하거나 단일 항목의 선택을 보여주는에 사용됩니다 리스트 박스는 자연스럽게 여러 선택을 지원합니다.

즉, 다중 값 * 테이블 필드를 Combobox에 연결하는 경우 여러 선택 항목이있는 Combobox를 가질 수 있습니다. 이 경우 값이 .ItemsSelected 속성에서 사용할 수있는 유일한 시간은 콤보 상자에 포커스가 있고 드롭 다운되는 경우입니다.

이 문제를 해결하려면 combobox의 .Value 속성을 배열에 할당해야합니다. 배열에는 선택된 값이 포함됩니다. 당신은 하나를 배열의 상한을 복용하고 추가하여 계산 할 수 있습니다

' array is 0-based so add one to get the count 
count = UBound(comboitems, [dimension]) + 1 

' where [dimension] is a 1-based index equivalent to the 'column' of the data 

나는 희망이 도움이 : 배열은 다차원 경우

Dim comboitems() as Variant 
Dim count as Long 

comboitems = yourcombobox.Value 

' array is 0-based so add one to get the count 
count = UBound(comboitems) + 1 

, 당신은 값이 방법을 읽어!

* 참고 : 다중 값 필드는 액세스가 지원 잘못이기 때문에 일반적으로, 경솔한 일반적으로 당신은 즉, 다른 테이블에 다중 값 필드를 깨고, 당신의 테이블을 정상화해야 의미한다.

0

이 옵션을 계산하기 위해서는 다음과 같습니다

Me!<ComboBox_name>.ListCount 

또는 경우에 당신이 열 머리글 사용, 정확합니다 :

Me!<ComboBox_name>.ListCount - Abs(Me!<ComboBox_name>.ColumnHeads)