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

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

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

Access Runtimeほぼ同一環境PCでエラー

[トピック内 2 記事 (1 - 2 表示)]  << 0 >>

■85012 / inTopicNo.1)  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;

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



引用返信 編集キー/
■85637 / inTopicNo.2)  Re[1]: Access Runtimeほぼ同一環境PCでエラー
□投稿者/ わかめぱんつ (2回)-(2017/11/11(Sat) 12:27:07)
No85012 (わかめぱんつ さん) に返信
> 開発環境: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;
>
> プログラムが悪いのかそれとも他の何かが影響しているのかいろいろ調べてはいるのですが、エラー内容もネットで調べてみたもののあまり情報がない状況です。
>
>
>
解決済み
引用返信 編集キー/

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ