2014-05-23 2 views
0

ADODB를 사용하여 SQL Server에서 내 엑셀 시트로 데이터를 가져 오려고합니다. References에서 'Microsoft ActiveX Data Objects 2.8 Library'도 활성화했습니다. 나는 ADODB를 처음 사용한다고 고백해야합니다.VBA 코드 집합 실행이 중단되어 레코드 집합이나 연결을 닫으려고합니다.

아래 코드는 올바르게 시작하고 해당 Excel 집합을 올바르게 Excel 시트에 기록됩니다. 그러나 'rs.close'에서 '코드 실행이 중단되었습니다.'라는 오류가 발생합니다.

이 오류 메시지는 매우 일반적이므로이 문제와 관련하여 혼자서 찾지 못했습니다.

내 컴퓨터의 동일한 데이터베이스에 액세스하는 다른 모든 프로그램을 종료했습니다.

Sub Test() 

Dim con As ADODB.Connection 
Dim conStr As String 
Dim SQL As String 
Dim rs As Recordset 
Dim myWb As Workbook 

Set myWb = ThisWorkbook 

Set con = New ADODB.Connection 
conStr = "Provider=SQLOLEDB;Data Source=*censored*;Initial Catalog=RegMetrics;Trusted_connection=yes;" 
con.Open conStr 

SQL = "Select * From dbo.fn_Counterparty_RWA()" 
Set rs = con.Execute(SQL) 
myWb.ActiveSheet.Range("A2").CopyFromRecordset rs 

rs.Close 
con.Close 

End Sub 
+0

이전에 실행 중일 때 Ctrl-Esc를 눌러 코드를 중지 시키려고 했습니까? 그렇다면 Excel을 다시 시작하십시오. 또한 rs.close 뒤에 "set rs = nothing"을 추가하면 오브젝트가 도움이됩니다. – Alex

+0

컴퓨터를 다시 시작 했으므로 이제는 정상적으로 작동합니다. 나는 이상한 열린 연결이 이전의 코드에서 "남겨져 있었다"고 생각합니다. 알렉스 고마워. 답글로 표시하는 방법을 잘 모르겠다 ... – Hellvetia

+0

이제는 다행스럽게 생각합니다. – Alex

답변

0

이 문제는 단순히 내 컴퓨터를 다시 시작하면 해결됩니다.