2017-04-25 86 views
0

我需要将结果导入新的工作簿,目前是在现有工作簿中获得结果吗?我需要将sql server结果导出到新的excel工作簿?

Sub ConnectSqlServer() 

Dim conn As ADODB.Connection 
Dim rs As ADODB.Recordset 
Dim sConnString As String 
Dim rsstring As String 
Workbooks.Add 
ActiveWorkbook.SaveAs "C:\WorkbookName.xls" 
sConnString = "Provider=SQLOLEDB;Data Source=PRATEEP-PC\SQLEXPRESS;" & _ 
       "Initial Catalog=PPDS_20Dec_V1_Decomposition;" & _ 
       "Integrated Security=SSPI;" 
Set conn = New ADODB.Connection 
Set rs = New ADODB.Recordset 
conn.Open sConnString 
rsstring = "SELECT * FROM GE_PRODUCT_RESOURCE_MASTER;" 
rs.Open rsstring, sConnString 
ActiveSheet.Range("B3").CopyFromRecordset rs 
rs.Close 
conn.Close 
End Sub 

回答

0

试过了,它工作正常。无论如何,使它防弹。

Sub ConnectSqlServer() 

Dim conn As ADODB.Connection 
Dim rs As ADODB.Recordset 
Dim sConnString As String 
Dim rsstring As String 
Set NewWorkbook = Workbooks.Add 'To avoid ActiveWorkbook 
sConnString = "Provider=SQLOLEDB;Data Source=PRATEEP-PC\SQLEXPRESS;" & _ 
       "Initial Catalog=PPDS_20Dec_V1_Decomposition;" & _ 
       "Integrated Security=SSPI;" 
Set conn = New ADODB.Connection 
Set rs = New ADODB.Recordset 
conn.Open sConnString 
rsstring = "SELECT * FROM GE_PRODUCT_RESOURCE_MASTER;" 
rs.Open rsstring, sConnString 
NewWorkbook.Range("B3").CopyFromRecordset rs 'directly call the NewWorkbook 
rs.Close 
conn.Close 
NewWorkbook.SaveAs "C:\WorkbookName.xls" 'Save after your change 
End Sub 
+0

还是一样,结果没有成为新作 – nick

+0

它仍然在现有的工作簿?你的工作簿是如何命名的?你的新工作簿应该如何命名? – Doomenik

+0

是的,我的工作簿命名为'mdmfinal'....新的工作簿可以是任何东西......我只需要在新的工作簿中的结果! – nick

相关问题