• 締切済み

ブラウザ経由でサーバ側のプログラム起動方法

下記環境でイントラを構築しております。  サーバー(1台)   ・Windows7 Pro   ・IIS9   ・SQL Server 2008 R2   ・Access2003(上記SQLにODBC接続)  クライアントPC(1台)    ・Windows7 Pro 開発環境はASP.netではなく、VBScriptによるASPです。 上記の環境において、クライアントのブラウザ上から、サーバー側のAccessのレポートを出力させる方法を模索しているところです。 サーバー側でAccess+SQLは常時起動しており、できればこのMDBのレポートを出力させたいと考えており、それが困難であれば別MDBを都度起動しても問題ありません。 ポイントとしては、  ・クライアントのブラウザ上から、サーバーのプログラムを実行する方法  ・既に起動中のAccessのレポートを出力させる方法 となります。 上記2点の方法につきまして、いずれかでも結構ですのでご教授頂けたらと思います。 宜しくお願い致します。

みんなの回答

  • shockatz
  • ベストアンサー率80% (153/191)
回答No.2

ASP時代に、サーバサイドでプログラムを実行する術といえば、何といってもActiveX COM DLLです。 VBscriptの機能はショボく、開発環境も貧弱だったので、Visual Basic 6を使い、COM DLLを作りました。 VBscriptからは、Server.CreateObject()でインスタンスを作り、実行します。 ブラウザ上でのActiveX動作にセキュリティ制限が強化された過程で、ActiveX系のイントラネット・ソリューションは衰退しましたが、サーバサイドに関しては、現在でも、社内ネットワークに限った運用で、けっこう使われているのではないでしょうか? (サーバ側で無理やりExcel動かしている例など) ACCESS自身は、COMとして正しく動作しますので、TypeLibraryにメソッドさえ存在すれば、サーバ側のDLLから、OLEオートメーションとして、オブジェクト化したACCESSコンポーネントを動かすことができると思います。

naoto0216
質問者

お礼

ご回答ありがとうございます。 ご教授頂いた中でいくつか分からない部分がございますので、もう少し勉強してから再投稿させて頂こうと思います。 ありがとうございました。

  • x-1919
  • ベストアンサー率52% (91/173)
回答No.1

・クライアントのブラウザ上から、サーバーのプログラムを実行する方法 ASP のページに書く VBScript はサーバー側で実行される。 だから VBScript でローカルのプログラムを実行させる処理を書くだけ。 ただし実行させるプログラムは Access など、ユーザーインターフェイスを持ってユーザーが対話的に操作するものは無理。 ・既に起動中のAccessのレポートを出力させる方法 サーバー機に誰もログインしていない状態で Access を起動できない。 ましてや Access のレポートは、ログインしているユーザーのデスクトップ上に表示された Access のウィンドウ内に表示される視覚的な要素。 解決策としては ・ 専用のレポーティング ツールを導入する。 ・ ASP の VBScript から ADO を使って MDB ファイルのデータを開いて、Access のレポートが行っているような処理と結果の HTML を出力するコードを自力で書く。 ・ 古い Access なら Access でデータアクセスページを作成し、IIS で公開する。Access 2007/2010 では作れない。 ( http://www.ysn21.jp/tetras/A/AM/AM_08.html )

naoto0216
質問者

お礼

ご回答ありがとうございます。 また、説明不足で申し訳ございません。 『既に起動中のAccessのレポートを出力させる方法』についてですが、サーバー機=デスクトップPCであり、(常に操作している訳ではりませんが)管理者がログインしAccessを起動している状態です。 また、レポートにつきましては確かにプレビューで開けば視覚的な要素となるかもしれませんが、今回は当該レポートを印刷するのみですので、直接プリンタに出力されます(一瞬『xxを○ページ印刷してます』というようなメッセージは表示されるかもしれませんが)。 もうすこし色々勉強してから再投稿させて頂きたいと思います。 ありがとうございました。

関連するQ&A