[ms-access] 개체가 설정되어 있는지 VBA 확인

내 사용자 지정 클래스의 인스턴스 인 전역 변수가 있습니다.

객체가 설정되었는지 또는 초기화해야하는지 어떻게 확인합니까?



답변

If obj Is Nothing Then
    ' need to initialize obj: '
    Set obj = ...
Else
    ' obj already set / initialized. '
End If

또는 다른 방법을 선호하는 경우 :

If Not obj Is Nothing Then
    ' obj already set / initialized. '
Else
    ' need to initialize obj: '
    Set obj = ...
End If


답변

이를 수행하는 (불) 안전한 방법-명시 적 옵션을 사용하지 않는 것이 괜찮다면 …

Not TypeName(myObj) = "Empty"

이것은 또한 객체가 선언되지 않은 경우를 처리합니다. 이것은 일부 동작을 끄는 선언을 주석 처리하려는 경우 유용합니다.

Dim myObj as Object
Not TypeName(myObj) = "Empty"  '/ true, the object exists - TypeName is Object

'Dim myObj as Object
Not TypeName(myObj) = "Empty"  '/ false, the object has not been declared

이것은 VBA가 선언되지 않은 변수를 Empty Variant 유형으로 자동 인스턴스화하기 때문에 작동합니다. 동작을 관리하기 위해 보조 부울이 필요하지 않습니다.


답변