C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■85012 / )  Access Runtimeほぼ同一環境PCでエラー
□投稿者/ わかめぱんつ (1回)-(2017/09/05(Tue) 12:20:36)

分類:[.NET 全般] 

開発環境:Vsiual Studio 2015 C#

初めての質問です。よろしくお願いいたします。

Accessのレポートを呼び出す機能を実装したアプリを2台のPCに入れたところ、
1台では正常にレポートが表示されますが片方はエラーで表示できず困っています。
プログラムの配布方法はClickOnceを使用しています。
※エラーが出るPCをセーフモード起動するとエラーなくプレビューできます。

レポートはSQL SERVER2008データベースのテーブルをODBCでリンクを張ったものを表示するといったものです。
ODBC接続に必要なユーザーDNS設定も2台ともまったく同じです。

エラー内容
サーバーの実行に失敗しました(HRESULTからの例外:0x80080005(CO_E_SERVER_EXEC_FAILURE))

クライアントPC環境
OS Win7 32bit
Access Runtime 2010
同一機種、同一スペック


C#側のプログラム

using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Windows.Forms;
using Moi = Microsoft.Office.Interop;
-----------------------------------------------------------

private string mdbPath; // .accdbフルパス
private string RprtName; // レポートの名前

  Moi.Access.Application PrintAccess = null;
Process process = Process.Start("MSAccess.exe", mdbPath);

process.WaitForInputIdle();
PrintAccess = (Moi.Access.Application)Marshal.BindToMoniker(mdbPath);

Microsoft.Office.Interop.Access.AcWindowMode.acWindowNormal, System.Reflection.Missing.Value);
PrintAccess.DoCmd.OpenReport(RprtName,
Moi.Access.AcView.acViewPreview,
System.Reflection.Missing.Value,
"[ユーザー識別コード]='" + Properties.Settings.Default.SettingId + "'", Moi.Access.AcWindowMode.acWindowNormal,
System.Reflection.Missing.Value);

Marshal.ReleaseComObject(PrintAccess);
PrintAccess = null;

プログラムが悪いのかそれとも他の何かが影響しているのかいろいろ調べてはいるのですが、エラー内容もネットで調べてみたもののあまり情報がない状況です。



返信 編集キー/


管理者用

- Child Tree -