Question

J'ai créé une application MS Access 2007 capable de créer des fichiers de rapports dans différents formats (PDF, XLS, CSV, XML).
Je souhaite que la création de ces rapports soit accessible depuis une page Web où les utilisateurs pourraient simplement cliquer sur un lien et obtenir un téléchargement du rapport produit par mon application Access.

Je voudrais garder les choses simples et à ce stade, je ne suis pas intéressé par la réécriture du traitement des données dans .Net. J'aimerais juste trouver un moyen d'automatiser la création du rapport de l'utilisateur pour renvoyer un fichier pouvant être téléchargé.
Essentiellement, mon application Access agirait comme un service Web.

Le serveur Web est IIS sous Windows 2003.

Tout pointeur ou idée serait la bienvenue. Je ne connais pas bien l'administration IIS ni les pages ASP.

Était-ce utile?

La solution

La première méthode rapide que je puisse imaginer serait d’appeler Access depuis un shell et de lui transmettre quelques paramètres pour l’ouvrir en lecture seule et exécuter une macro.

Cette macro devrait extraire ses paramètres de rapport (éventuellement des variables env), exécuter le rapport et l'enregistrer au format Excel, PDF ou autre sous un nom unique. Pour cela, vous devez passer le nom du rapport, un identifiant de requête unique et un tableau de paramètres permettant de gérer plusieurs paramètres (ou aucun).

Enfin et surtout, votre macro Access / VBA Sub devra fermer l'accès.

Ce n’est pas une bonne solution car créer une copie d’Access par demande n’est pas vraiment conseillé.

Une autre option consiste à démarrer Access sur le serveur avec un sous-VBA qui démarre à l’ouverture. Ce sous-utilisateur pourrait interroger un répertoire pour connaître les demandes écrites par votre serveur Web. Ensuite, lors de la réception d'une demande, créez un rapport et écrivez-le quelque part. Là encore, vous devrez vous baser sur un identifiant de requête unique.

Je ne sais pas trop quelle "solution" serait mieux ... Accès en tant que générateur de rapports en ligne de commande ou Accès en tant que service de génération de rapports. Les deux seraient méchants, mais vous aideraient à surmonter la bosse jusqu'à ce que vous puissiez migrer vers un service de génération de rapports.

Autres conseils

C'est en quelque sorte un moyen de réaliser ce que vous demandez. Vous pouvez utiliser la version gratuite de SQL Server Express 2005 ou 2008 Advance Edition, qui inclut le composant Services de génération de rapports. En utilisant les outils de génération de rapports, vous pouvez convertir vos rapports d’accès 2007 en rapports de serveur SQL et les transférer à partir de la base de données d’accès. Vous pouvez également aller dans la mesure de la migration de la base de données vers le serveur SQL si vous souhaitez suivre cette voie. Les services de génération de rapports génèrent les formats pdf, xls, csv et xml comme sortie de vos rapports. Vous pouvez générer ces rapports en transmettant simplement les paramètres de l'URL au serveur, qui renverra votre rapport dans le format demandé.

Lien vers l'édition avancée de SQL Server 2008 Express:

http://www.microsoft.com/express/sql/download/

Si vous ne souhaitez pas réécrire en .Net, qu'en est-il de Classic ASP et de VBScript? VBScript a beaucoup en commun avec VBA, il ne devrait donc pas falloir longtemps pour créer quelque chose d’utilisable, et l’aide disponible pour l’ASP et VBScript est considérable. Par exemple, une simple recherche a renvoyé cette méthode de création d’un fichier PDF avec Adobe à partir d’ASP:

Création d'un fichier PDF avec ASP

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top