2008-10-17 3 views
1

J'ai construit une application MS Access 2007 qui peut créer des fichiers de rapports dans différents formats (PDF, XLS, CSV, XML).
Je voudrais permettre que la création de ces rapports soit accessible à partir d'une page Web où les utilisateurs cliqueraient simplement sur un lien et obtiendraient un téléchargement du rapport produit par mon application Access.Utiliser MS Access pour renvoyer des rapports à la demande dans un serveur Web?

Je voudrais rester simple et je ne suis pas intéressé à cette étape de la réécriture du traitement des données dans .Net. Je voudrais juste trouver un moyen d'automatiser la création du rapport d'utilisateur pour retourner un fichier qui peut être téléchargé.
En substance, mon application Access agirait comme un service Web quelconque.

Le serveur Web est IIS sur Windows 2003.

Les pointeurs ou les idées sont les bienvenues. Je ne suis pas très versé dans l'administration IIS ou les pages ASP.

Merci à tous ceux qui répondent.

Répondre

1

La première méthode rapide et sale que je pouvais penser serait d'appeler l'accès à partir d'une coquille et passer quelques paramètres à ouvrir en lecture seulement et exécutez une macro.

Cette macro doit extraire ses paramètres de rapport de quelque part (éventuellement des variables d'environnement), exécuter le rapport et l'enregistrer sous Excel, PDF ou autre en un nom unique. Pour cela, vous devrez passer le nom du rapport, un identifiant de requête unique et un tableau de paramètres pour gérer plusieurs paramètres (ou aucun).

Dernier point, mais non des moindres, votre macro Access/VBA Sub devra fermer l'accès.

Ce n'est pas une bonne solution car le démarrage d'une copie d'Access par requête n'est pas vraiment conseillé.

Une autre option consiste à démarrer l'accès sur le serveur avec un sous-VBA qui commence à l'ouverture. Ce sous-marin pourrait interroger un répertoire pour les requêtes écrites par votre serveur web. Puis, à la réception d'une demande, exécutez un rapport et écrivez-le quelque part. Encore une fois vous devrez baser ceci autour d'un ID de demande unique. Je ne suis pas vraiment sûr quelle "solution" serait mieux .... Accès en tant que générateur de rapport de ligne de commande ou Access en tant que service de reporting par lots. Les deux seraient désagréables, mais vous feraient passer la bosse jusqu'à ce que vous puissiez migrer vers un service de reporting.

0

Ceci est 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 de services de reporting. À l'aide des outils de génération de rapports, vous pouvez convertir vos rapports d'accès 2007 en rapports SQL Server et faire en sorte que ces rapports se nourrissent de la base de données Access. Vous pouvez également aller dans la mesure de la migration de la base de données vers le serveur sql si vous souhaitez utiliser cette route. Les services de reporting généreront des formats pdf, xls, csv et xml en sortie pour vos rapports et vous pourrez générer ces rapports en passant simplement les paramètres de l'url au serveur qui retournera votre rapport dans le format demandé.

Lien vers SQL Server 2008 Express Edition avancée:

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

+0

Merci pour la suggestion, mais alors que nous avons l'intention de migrer vers SQL Server dans un proche avenir, il est pas vraiment une solution au moment . Le code pour les rapports existe déjà et nous aimerions l'utiliser. C'est "juste" de transmettre la requête à Access et de récupérer un fichier ... –

0

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

Creating a PDF with ASP

Questions connexes