2017-05-23 1 views
0

으로 SQL에서 테이블을 가져 오기 오류, 나는라는 오류 메시지가 계속 :SQL VBA에 아래 코드에서 엑셀

"런타임 오류 '-2147467259 (80004005)': 자동화 오류 지정되지 않은 오류"

연결을 시도 할 때 오류가 팝업됩니다. 로컬 SQL DB의 데이터를 Excel로 가져 오기만하면됩니다.

중요한지는 모르겠지만 SQL Server 2014 Express를 사용하고 있습니다.

Sub connect() 
Dim conn As ADODB.Connection 
Dim cmd As ADODB.Command 
Dim rs As ADODB.Recordset 
Dim strConn As String 
Dim connstr As String 
Dim strSRV As String 
Dim strDB As String 
Dim sql_login As String 


sqlquery = "SELECT top 10 * FROM [Source Contacts];" 


connstr = "Driver={SQL Server native Client 11.0};Server=(LocalDB)\v11.0;AttachDBFileName=C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\SIT23DL_Validation.mdf;Database=SIT23DL_Validation;Trusted_Connection=Yes" 

'Create the Connection and Recordset objects 
Set conn = New ADODB.Connection 
conn.ConnectionString = connstr 
conn.Open 


Set rs = conn.Execute(sqlquery) 

If Not rs.EOF Then 
    'Transfer result 
    Sheets(1).Range("A1").CopyFromRecordset rs 

'Close Recordset 
rs.Close 

Else 
    MsgBox "Error: No records returned.", vbCritical 
End If 

'Clean up 
If CBool(conn.State And adStateopen) Then conn.Close 
Set conn = Nothing 
Set rs = Nothing 
End Sub 
+1

트리플 체크 'connstr'은 필요한만큼 정확하게 작성됩니다. –

+1

@ScottHoltzman yeah (localdb) \ v11.0 용의자로 보입니다 –

+0

저는 로컬 DB에서 SQL 테이블을 가져 오는 방법과 관련하여 msdn에서 찾은 스레드를 기반으로했습니다. (https://social.msdn.microsoft.com/Forums/en-US/434232bf-3351-49b1-a80f-a788b02bf7ce/connecting-to-2012-localdb-from-vba?forum=sqlexpress) – Adit2789

답변

1

의견과 관련하여, 대부분의 원인은 연결 문자열입니다. 'Microsoft SQL Server Management Studio'를 사용하여 SQL 인스턴스에 연결하고 연결 문자열을 통하지 않고 해당 인터페이스를 통해 데이터베이스를 연결하십시오. 모든 것이 제대로 작동하면 다음을 시도 할 수 있습니다. localhost를 실제 컴퓨터 이름으로 바꿔야 할 수도 있습니다.

connstr = "Provider=SQLOLEDB;Data Source='localhost\v11.0';Initial Catalog='SIT23DL_Validation';Integrated Security=SSPI;Trusted_Connection=Yes" 
+0

고마워요! 매력처럼 일했습니다. – Adit2789