プロが教えるわが家の防犯対策術!

下記環境でイントラを構築しております。

 サーバー(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点の方法につきまして、いずれかでも結構ですのでご教授頂けたらと思います。
宜しくお願い致します。

A 回答 (2件)

ASP時代に、サーバサイドでプログラムを実行する術といえば、何といってもActiveX COM DLLです。


VBscriptの機能はショボく、開発環境も貧弱だったので、Visual Basic 6を使い、COM DLLを作りました。
VBscriptからは、Server.CreateObject()でインスタンスを作り、実行します。

ブラウザ上でのActiveX動作にセキュリティ制限が強化された過程で、ActiveX系のイントラネット・ソリューションは衰退しましたが、サーバサイドに関しては、現在でも、社内ネットワークに限った運用で、けっこう使われているのではないでしょうか?
(サーバ側で無理やりExcel動かしている例など)

ACCESS自身は、COMとして正しく動作しますので、TypeLibraryにメソッドさえ存在すれば、サーバ側のDLLから、OLEオートメーションとして、オブジェクト化したACCESSコンポーネントを動かすことができると思います。
    • good
    • 0
この回答へのお礼

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

お礼日時:2012/10/03 16:33

・クライアントのブラウザ上から、サーバーのプログラムを実行する方法


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 )
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
また、説明不足で申し訳ございません。

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

もうすこし色々勉強してから再投稿させて頂きたいと思います。
ありがとうございました。

お礼日時:2012/10/03 16:44

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!