J'ai trouvé un moyen d'extraire le contenu d'une table MS SQL directement (plus rapide) pour exceller. Mais je ne sais pas comment le faire avec une procédure stockée qui nécessite des paramètres. Est-il possible d'extraire directement dans un fichier Excel les résultats d'une procédure stockée? Je sais comment le faire indirectement (en utilisant une table de données) mais c'est trop lent. Merci beaucoup. PS: C'est la méthode que j'utilisais pour faire quelques tests. Cela fonctionne avec une table, mais ce dont j'ai besoin est d'extraire le résultat d'une procédure stockée:Comment exporter les résultats d'une procédure stockée directement dans un fichier MS Excel?
Private Sub SqlToExcelTest2(ByVal excelFilePath As String, _
ByVal nonExistingSheetName As String, _
ByVal sqlServer As String, _
ByVal sqlDatabase As String, _
ByVal sqlUserName As String, _
ByVal sqlPassword As String, _
ByVal sqlTable As String)
Const excelConnStrTemplate As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=YES;IMEX=2"";"
Dim connStr As String = String.Format(excelConnStrTemplate, _
excelFilePath)
Const adoQueryTemplate As String = "SELECT * INTO {0} FROM [odbc;Driver={{SQL Server}};" & _
"Server={1};Database={2};UID={3};PWD={4}].[{5}] "
Dim query As String = String.Format(adoQueryTemplate, _
nonExistingSheetName, _
sqlServer, _
sqlDatabase, _
sqlUserName, _
sqlPassword, _
sqlTable)
Using oleConn As New OleDb.OleDbConnection(connStr), oleCmd As New OleDb.OleDbCommand(query, oleConn)
oleConn.Open()
oleCmd.ExecuteNonQuery()
oleConn.Close()
End Using
End Sub
Si vous ne faites cela occasionnellement pour les tests, pouvez-vous utiliser la fonctionnalité Management Studio pour exporter vers Excel? Définissez la sortie de la requête sur Excel, puis exécutez le sproc dans une fenêtre de requête. – DOK