【Access】 GUID를 사용하여 VBA에서 참조 설정을 수행합니다.
시작시 참조 설정 오류가 발생합니다.
Access 개발에서 드물게 자주 있는 녀석의 대처.
사용자 PC마다 매번 수동으로 참조 설정을 변경하는 것은 번거롭기 때문에
VBA에서 버전을 확인하고 참조 설정을.
참조 설정을 VBA에서 수행하는 두 가지 방법이 있습니다.
전체 경로를 지정하는 방법은 여러 사람에게 배포하기에는 적합하지 않으므로,
이번에는 GUID를 지정하여 설정하는 방법.
GUID 조사
필요한 정보는 GUID와 그 버전 (메이저 & 마이너).
이어서 사무실 버전도 확인.
Sub survey_guid()
Dim Ref As Reference
Debug.Print "VERSION:" & Application.Version
For Each Ref In References
Debug.Print "NAME:" & Ref.Name & " GUID:" & Ref.Guid & " MAJOR:" & Ref.Major & " MINOR:" & Ref.Minor
Next
Set Ref = Nothing
End Sub
결과
실제 참조 설정과 비교하면 이런 느낌.
참조 설정 창과 동일한 순서로 출력됩니다.
(영어 OS에 일본어 Office를 설치하고 있는 관계로 일부 문자 깨져 있습니다.)
이번 VBA에서 참조 설정하고 싶은 것은 ADO Ext.XX와 Excel object Library.
2개의 화면으로부터 각 라이브러리의 GUID와 그 메이저 버젼·마이너 버젼을 특정할 수 있다.
ADO
NAME:ADOX GUID:{00000600-0000-0010-8000-00AA006D2EA4} MAJOR:6 MINOR:0
Excel 개체 라이브러리
NAME:Excel GUID:{00020813-0000-0000-C000-000000000046} MAJOR:1 MINOR:7
화면과 결과는 Office2010.
사용할 수 있는 Office 버전에서 각각 비슷한 조사를 합니다.
참조 설정
위에서 얻은 GUID 및 버전을 사용하여 참조 설정.
이번에는 Access 시작시 열리는 폼의 Form_Load 이벤트에 기재하고,
office2010과 2007의 이용자가 있는 경우를 상정.
Private Sub Form_Load()
Dim Ref As Reference
Const strADO As String = "{00000600-0000-0010-8000-00AA006D2EA4}"
Const strExcel As String = "{00020813-0000-0000-C000-000000000046}"
On Error Resume Next
If Application.Version = 14# Then
Set Ref = References.AddFromGuid(strADO, 6, 0)
Set Ref = References.AddFromGuid(strExcel, 1, 7)
ElseIf Application.Version = 12# Then
Set Ref = References.AddFromGuid(strADO, 2, 8)
Set Ref = References.AddFromGuid(strExcel, 1, 6)
End If
Set Ref = Nothing
End Sub
사무실 버전을 얻고 버전별 조건 분기,
References.AddFromGuid("GUID", メジャーバージョン, マイナーバージョン)
이제 각 라이브러리의 참조 설정을합니다.
에러 처리는 손잡이.
이미 참조 설정되어 있는 경우에는 에러 No.32813이 돌아오므로, 필요에 맞추어 에러 처리를.
(참조 설정이 저장되므로 오류 32813에 대한 일부 오류 처리
를 해 두지 않으면, 2회째 이후에 기동했을 때 에러가 발생한다. )
(상기와 같은 이유로 배포시에는 한번 참조 설정을 해제하고 나서 배포하는 것을 잊지 말고.)
참고 : VBA에서 참조 설정 설정 및 해제(ACCESS)
※더 스마트한 방법 아시는 분 있으면 가르쳐 주세요.
Reference
이 문제에 관하여(【Access】 GUID를 사용하여 VBA에서 참조 설정을 수행합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kaolyn/items/3ea9e02fb13f060699ce텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)