2010-12-06 52 views
1

j'ai posé this question environ 8 mois, et le fait que nous courions SQL Server 2000 semblait être le facteur limitant. Nous avons récemment effectué une mise à niveau vers SQL Server 2008 et je n'arrive toujours pas à trouver une solution solide à ce problème. Nous avons une application Access s'interfaçant avec une base de données SQL Server et nous devons trouver un moyen d'exporter par programme une vue donnée vers une feuille de calcul Excel - ou au moins une feuille de calcul compatible Excel (CSV, délimitée par des tabulations, etc.) Je peux utiliser bcp, mais plusieurs des vues contiennent des champs avec des sauts de ligne, ce qui s'avère gênant lors de l'importation dans Excel. Ces vues sont également variées et ont des colonnes imprévisibles, donc pour autant que je sache, l'utilisation d'OPENROWSET n'est pas non plus une option, car vous devez avoir un template Excel avec des lignes prédéfinies.export vues de par programmation SQL Server vers Excel

Toute aide ici serait appréciée. Je connais mon chemin à travers Access et SQL Server, mais mes connaissances sont quelque peu limitées.

+0

Avez-vous envisagé de le faire dans l'autre sens, à savoir simplement tirer les données de la vue dans Excel? Il suffit d'utiliser Data-> From Other Sources-> SQL Server, et configurer une requête là-dedans pour extraire les données de vue. Chaque fois que vous voulez repeupler les données, vous pouvez simplement cliquer sur le bouton Actualiser dans Excel ... Normalement, cela fonctionne beaucoup mieux que de pousser des données dans Excel à partir d'un serveur. –

+0

Cela ne fonctionnera pas vraiment bien pour mes utilisateurs. Nous fonctionnons à partir d'une application Access assez étendue, et ils vont devoir sélectionner leurs données, puis générer le document Excel à partir d'Access. Bonne pensée, cependant! –

+0

Cette question pourrait bénéficier de tags supplémentaires Excel et access-vba. La meilleure réponse pourrait être un croisement d'idées ou de suggestions provenant à la fois des publics «sql», «excel» et «access». –

Répondre

1

Quand vous dites « programatically », quelle langue vous espériez pour mettre en œuvre la solution? Je recommanderais SQL Server SSIS comme un bon point de départ. Si vous avez besoin de coder cette dynamique, plutôt que d'utiliser les BIDS/Designer Visual Studio il y a beaucoup de soutien pour cela dans les bibliothèques .NET, vous permettant de le faire en C#/VB

+0

J'espérais le faire via SQL/VBScript dans Access. Mes compétences en C# sont assez inexistantes et cela fait longtemps, longtemps depuis que j'ai fait de la création Visual Studio/DLL. L'appel de BCP fonctionne très bien, si je ne faisais pas appel à des sauts de ligne dans les données. –

1
  1. Si vous voulez exporter les données au format CSV vous pouvez écrire votre propre fonction pour échapper à des caractères spéciaux dans les champs

(il est une douleur dans un endroit)

  1. Si vous utilisez SSIS pour exporter vos données dans Excel il mis apostrophe et le début de chaque celluleSi vous souhaitez dépenser un peu d'argent, vous pouvez envisager d'utiliser notre processeur ETL avancé. Tout d'abord, il fonctionne tout le temps correctement avec Excel. De plus, il a composante exportation de données qui vous permet de sélectionner les tables/vues à exportation à l'aide masque Vous pouvez utiliser le planificateur pour automatiser ou vous pouvez exécuter un package à partir de la ligne de commande

Cette ligne tutoriel vous donne une introduction rapide aux données export

http://www.dbsoftlab.com/online-tutorials/advanced-etl-processor/advanced-etl-pro-exporting-data-from-mysql-database-into-text-files.html