2017-11-03 10 views
0

아래 표와 코드를 찾으십시오.Null VBA Excel의 사용이 잘못되었습니다

012 - : 나는 널 오류

표 1

enter image description here

표 2

enter image description here

VBA 코드의 잘못된 사용에 직면하고있다

Sub sql() sql_string = "Select [Sheet1$].[Sr], [Sheet2$].[Name], [Sheet2$].[Value] From [Sheet1$]" & _ " Inner Join [Sheet2$] On CInt([Sheet1$].[Sr]) = CInt(Mid([Sheet2$].[Name],InStr(1,[Sheet2$].[Name],""#"")+1))" sq = SQL_query(sql_string) end sub Function SQL_query(ByRef sql_string As Variant) Dim cn As ADODB.Connection Dim rs As ADODB.Recordset strFile = ThisWorkbook.FullName strCon = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & strFile _ & ";Extended Properties=""Excel 12.0;HDR=Yes;IMEX=1"";" Set cn = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") cn.Open strCon strSQL = sql_string rs.Open strSQL, cn Sheet5.Range("A21").CopyFromRecordset rs ''HERE I AM FACING ERROR End Function 

제발 나를 안내합니다 .. 내 아래 오류. 표 열 시니어 유사하다 몇개의이 number's.I은 내부 싶지가 #표 2 열 시니어에서

enter image description here

은 특정 숫자에 따라 가입 할 수 있습니다.

필수 출력. 모듈의 상단에 Option Explicit를 작성하여

enter image description here

+0

을 무엇을 얻을 테스트 할 수있는 방법을 찾기? 또한이 코드가 수행하는 작업과 얻고 자하는 것을 설명하십시오. –

+0

@MichaelO. 문제의 요구 출력을 업데이트했습니다. 또한 마지막 줄에서 코드 ** Sheet5.Range ("A21")를 마주하고 있습니다. CopyFromRecordset rs ** – sagar

+0

연결이 설정되어 있고 레코드 집합이 성공적으로 열렸는지 확인 했습니까? –

답변

0

시작. 직접 실행 창에서

Function sql_string() as string 

    sql_string = "Select [Sheet1$].[Sr], [Sheet2$].[Name], [Sheet2$].[Value] From [Sheet1$]" & _ 
    " Inner Join [Sheet2$] On CInt([Sheet1$].[Sr]) = CInt(Mid([Sheet2$].[Name],InStr(1,[Sheet2$].[Name],""#"")+1))" 

end sub