
下記環境でイントラを構築しております。
サーバー(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件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
ASP時代に、サーバサイドでプログラムを実行する術といえば、何といってもActiveX COM DLLです。
VBscriptの機能はショボく、開発環境も貧弱だったので、Visual Basic 6を使い、COM DLLを作りました。
VBscriptからは、Server.CreateObject()でインスタンスを作り、実行します。
ブラウザ上でのActiveX動作にセキュリティ制限が強化された過程で、ActiveX系のイントラネット・ソリューションは衰退しましたが、サーバサイドに関しては、現在でも、社内ネットワークに限った運用で、けっこう使われているのではないでしょうか?
(サーバ側で無理やりExcel動かしている例など)
ACCESS自身は、COMとして正しく動作しますので、TypeLibraryにメソッドさえ存在すれば、サーバ側のDLLから、OLEオートメーションとして、オブジェクト化したACCESSコンポーネントを動かすことができると思います。
ご回答ありがとうございます。
ご教授頂いた中でいくつか分からない部分がございますので、もう少し勉強してから再投稿させて頂こうと思います。
ありがとうございました。
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 )
ご回答ありがとうございます。
また、説明不足で申し訳ございません。
『既に起動中のAccessのレポートを出力させる方法』についてですが、サーバー機=デスクトップPCであり、(常に操作している訳ではりませんが)管理者がログインしAccessを起動している状態です。
また、レポートにつきましては確かにプレビューで開けば視覚的な要素となるかもしれませんが、今回は当該レポートを印刷するのみですので、直接プリンタに出力されます(一瞬『xxを○ページ印刷してます』というようなメッセージは表示されるかもしれませんが)。
もうすこし色々勉強してから再投稿させて頂きたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Macターミナルで実行中のプログ...
-
sendkeysにてALT+CTRL+INSERTを...
-
MACで動く実行ファイルをWindow...
-
vba GetAsyncKeyState関数について
-
Windows10でDOSゲーム
-
パソコンの演算速度について
-
サンク方式について
-
UWSCがうまく動かない
-
コマンドラインの長さに制限は...
-
cc -o sample sample.c cc -o s...
-
プログラムを走らせる
-
C言語で書いたプログラムをWEB...
-
C言語プログラミングの再帰がい...
-
並列計算をしたときのシステム...
-
F-BASIC V6.3プログラミングに...
-
実行時エラー429
-
apacheのコマンドプロンプトか...
-
C# シリアル通信でデータ受信...
-
TCP/IP通信時のサーバーからの受信
-
メモリが不足しています(VBA)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Macターミナルで実行中のプログ...
-
パソコンの演算速度について
-
C言語で途中までしか、プログラ...
-
sendkeysにてALT+CTRL+INSERTを...
-
vba GetAsyncKeyState関数について
-
RPG パラメーターについて
-
sleep()関数について
-
Windows10でDOSゲーム
-
実行中の実行ファイルの上書き
-
VBAで外部プログラムを非表示で...
-
終了してもプログラムが実行し...
-
並列計算をしたときのシステム...
-
VB上で実行中の無限ループの止め方
-
VB6プログラムの実行中でのこと
-
アクセス[ファイルを開かずに、...
-
他の実行ファイルを実行するプ...
-
実行時エラー429
-
UWSCがうまく動かない
-
MACアドレスの調べ方
-
”行数のカウント”はどうすれば...
おすすめ情報