- PR -

C#でACCESS2002ランタイム版環境下でレポート印刷

投稿者投稿内容
ぼぼ
会議室デビュー日: 2006/05/07
投稿数: 10
投稿日時: 2006-05-07 16:25
C# でACCESS 2002ランタイム版がインストールされているPCにて
ACCESSのレポートを印刷しようと試みていますが、
「サーバーの実行に失敗しました」とエラー表示され印刷できません。
またコードは下記の様になっており、正規版のACCESSがインストール
されているPCでは印刷できます。
どうやれば印刷できるのか、どなたか教えてください。よろしくお願いします。
ちなみに、
http://support.microsoft.com/kb/295179/ja
 をやってみましたが上記の状態でした。

private void PrintAccess()
{
Access.Application PrintAccess =null;
PrintAccess = new Access.ApplicationClass();
try
{
PrintAccess.OpenCurrentDatabase(applicationFolder+"PrintData.mdb",true,"");
PrintAccess.DoCmd.OpenReport
(ReportName,Access.AcView.acViewNormal,System.Reflection.Missing.Value
,System.Reflection.Missing.Value,Access.AcWindowMode.acWindowNormal,System.Re flection.Missing.Value);
}
finally
{
if (PrintAccess != null)
{
try
{
PrintAccess.Quit(Access.AcQuitOption.acQuitSaveNone);
}
finally
{
Marshal.ReleaseComObject(PrintAccess);
}
}

[ メッセージ編集済み 編集者: ぼぼ 編集日時 2006-05-07 16:25 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-05-07 16:32
引用:

ぼぼさんの書き込み (2006-05-07 16:25) より:

ちなみに、
http://support.microsoft.com/kb/295179/ja
をやってみましたが上記の状態でした。


これは、CreateObject の場合ですね。
とりあえず、どこで起きているのかを特定して頂けませんか?

引用:

PrintAccess = new Access.ApplicationClass();


ココで起きているのか、

引用:

PrintAccess.OpenCurrentDatabase(applicationFolder+"PrintData.mdb",true,"");
PrintAccess.DoCmd.OpenReport(...)


それともココで起きているのかで、話が変わってきます。

# おそらく前者だとは思うのですが。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ぼぼ
会議室デビュー日: 2006/05/07
投稿数: 10
投稿日時: 2006-05-07 16:47
じゃんぬねっと さま 返答ありがとうございます。

PrintAccess = new Access.ApplicationClass();

でエラーが出ていることがわかりました。

よろしければ、続けてご教授おねがいします。
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-05-07 17:06
VB6.0などからどうこうしているならともかく.NETからのCOMラッパーものは専用のDLLがいるんじゃなかったっけ?
そもそもセットアッププロジェクトからインストーラ作って配布したの?
_________________
質問する前にググレカス
ぼぼ
会議室デビュー日: 2006/05/07
投稿数: 10
投稿日時: 2006-05-07 17:25
ぶさいくろう さま 返信ありがとうございます。

引用:

そもそもセットアッププロジェクトからインストーラ作って配布したの?




とは具体的にどのようななことでしょうか?
インストーラは、ぜんぜんまだ作っていない状況です。
PrintAccess = new Access.ApplicationClass();にエラーが出ている
状況が分かったのは、とりあえずC#と正規版Accessが入っているPCにて
正規版Accessをアンインストールして、ランタイム版をインストール
した状態で実行して分かりました。ランタイム版のインストールには、
Office XP Developerのパッケージウィザードにて配布してみました。



ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-05-07 17:31
引用:

ぼぼさんの書き込み (2006-05-07 17:25) より:
とは具体的にどのようななことでしょうか?


ちったぁぐぐれや。いや。ぐぐってください。
http://www.google.co.jp/search?hl=ja&q=%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88&lr=
_________________
質問する前にググレカス
ぼぼ
会議室デビュー日: 2006/05/07
投稿数: 10
投稿日時: 2006-05-07 17:54
ぶさいくろう さま ありがとうございます。

セットアッププロジェクトはよくわかったのですが?
現在、Visual Studio .NET 2003とAccessランタイム版の
あるPCにて印刷できない状態なんですが、
この環境下で、セットアッププロジェクトからインストーラ作って配布
する必要があるのかがよく分かりません?



ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-05-07 18:13
引用:

ぼぼさんの書き込み (2006-05-07 17:54) より:

この環境下で、セットアッププロジェクトからインストーラ作って配布
する必要があるのかがよく分かりません?


COMラッパーを使ってるんだから必要だと思うが・・・VB6なら今のままでもうまくいくだろうけど。

スキルアップ/キャリアアップ(JOB@IT)