컴파일러 오류:사용자 정의 유형이 정의되지 않았습니다.
다음 행에서 컴파일 시 오류 "User-defined types not defined"가 표시됩니다.
Dim cn As ADODB.Connection
뭐가 잘못됐나요?
코드:
Sub test()
Dim cn As ADODB.Connection
'Not the best way to get the name, just convenient for notes
strFile = Workbooks(1).FullName
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFile & ";Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1"";"
Set cn = CreateObject("ADODB.Connection")
'For this to work, you must create a DSN and use the name in place of
'DSNName
'strSQL = "INSERT INTO [ODBC;DSN=DSNName;].NameOfMySQLTable " & "Select AnyField As NameOfMySQLField FROM [Sheet1$];"
strSQL = "SELECT F1 FROM [Sheet1$];"
cn.Execute strSQL
End Sub
Microsoft ActiveX Data Objects 2.5 Library에 대한 참조를 추가하지 않았습니다.이 참조는 다음 경우에 필요합니다.early binding
.
이 레퍼런스에 접속하는 방법:
[ Tools ] > [ References ]> [ Microsoft ActiveX Data Objects 2.5 Library ]체크박스를 켜겠습니다
동작하는 다른 라이브러리는 다음과 같습니다.
Microsoft ActiveX Data Objects 2.6 라이브러리
Microsoft ActiveX Data Objects 2.7 라이브러리
Microsoft ActiveX Data Objects 2.8 라이브러리
Microsoft ActiveX Data Objects 6.1 라이브러리
레이트 바인딩을 사용할 수 있습니다.
Dim cn As Object
문제가 해결됩니다.VBA는 다음 경우에 자동으로 참조를 만듭니다.Set cn = CreateObject("ADODB.Connection")
스테이트먼트가 실행됩니다.
Microsoft ActiveX Data Objects 2.5 및 2.8 라이브러리를 추가하려고 했지만 잘 되지 않았습니다.하지만 아래와 같은 새로운 오브젝트를 만들어 보니 효과가 있었습니다.
Set cn = CreateObject("ADODB.Connection")
언급URL : https://stackoverflow.com/questions/5349580/compiler-error-user-defined-types-not-defined
'IT' 카테고리의 다른 글
셸의 한 줄에 여러 명령어 실행 (0) | 2023.04.13 |
---|---|
MVVM에서 모델의 역할 (0) | 2023.04.13 |
종속성 속성 변경 듣기 (0) | 2023.04.13 |
wpf 응용 프로그램에 이상한 블랙박스가 표시됨 (0) | 2023.04.13 |
링크 업데이트 경고를 억제하는 방법 (0) | 2023.04.13 |