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

わんくま同盟

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

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


(過去ログ 119 を表示中)
■69594 / )  Re[4]: ネットワーク越しのショートカットEXEの起動について
□投稿者/ 魔界の仮面弁士 (496回)-(2014/01/10(Fri) 15:23:24)
No69588 (G さん) に返信
> ネットワーク管理者等に確認したところ 実行ユーザは、Adminの権限があるので問題ないそうです。
ネットワーク権限があることは分かりましたが、それはもしかして、
管理者権限が無いと動かないようなアプリになっている、ということなのでしょうか。

Vista 以降の OS では、UAC の働きにより、
 ・%SystemRoot%  … C:\
 ・%ProgramFiles% … C:\Program Files
 ・HKEY_LOCAL_MACHINE\Software
などへの書き込みが仮想化されており、実際とは異なる場所が操作されたりします。
こうした場所への書き込み(iniなど)があると、たとえ管理者ユーザーで
あったとしても影響があります。

EXE を右クリックして、管理者モードにて実行した場合に、
動作に差が生じるかも確認した方が良いかもしれません。


>> ・exe自体をclientに持ってきた場合(動作環境A)、処理は正常に行われる。
> 上記処理もエラーが発生しました。
環境1 では、ローカル実行できるけれども、ネットワーク上の EXE からは実行できない状態。
環境2 では、EXE がローカルでもネットワーク上でも、いずれも正常動作していない、ということですね?


> また、Oracleへの接続もありました。
何の話でしょうか? Access ではなく、突然 Oracle という言葉が出てきましたが…。

Oracle Database も併用しているとしたら、それはどうやって接続していますか?
DAO の ODBCDirect なのか、パススルークエリーなのか、あるいは ODBC リンクテーブルなのか、
それとも DAO とは無関係に、別途 oo4o や ADO や RDO などで接続しているのか。


環境 2が Win7x64 で、Oracle Client あるいは ODBC Dirver も 64bit 版しか入っていなかった場合、
64bit Access からは繋がりますが、VB6 や 32bit Access からは繋がらない、ということはありますね。



>> エラー内容:エラーです。処理を中断します(ユーザメッセージ)
このエラーが、不正データ検出などのための、意図的な論理エラーなのか、
あるいは VB ランタイムが発しているものなのか、DAO/JET が発しているものなのか、
Oracle 関連のエラーなのかはわかりますか?

発生元が分からないのであれば、まずはそれが、何のエラーなのかを特定する作業が必要でしょう。
いわゆる「Err.Source」「Err.Number」「Err.Description」の調査です。

VB6 なり VBScript なりで、mdb を開くようなコードを書いて、
それを実行してみた場合にも、何らかのエラーになりますか?

実験コードで動くのであれば、実際には、mdb は直接関係ないという可能性もあります。
(ini ファイルやレジストリの設定ミスなど)


> Dim dblocal As DAO.Database
> Set dblocal = Workspaces(0).OpenDatabase(ローカルパス指定)
DBEngine の初期化はせず、暗黙の Global object を操作するタイプのコードですね。
OpenDatabase の第2引数以降は未指定なのですね?


> dblocal.OpenRecordse("HOGE",1)
『OpenRecordse「t」』の間違いとは思いますが、
何故にマジックナンバー 1 が…。dbOpenTable を使いましょう。(^_^;


> ここで 3011/3078エラーが発生していると思うのです。
「3011/3078エラー」とは何のことですか? エラー番号まで分かっていたのでしょうか。
そういう重要な情報は最初に出してほしいです…。

手持ちの Access 2010 で、
 Debug.Print AccessError(3011)
 Debug.Print AccessError(3078)
を確認してみました。

3011 の方は、
・The Microsoft Jet database engine could not find the object <name>. Make sure the object exists and that you spell its name and the path name correctly.
・オブジェクト '<オブジェクト名>' が見つかりませんでした。オブジェクトが存在していること、名前やパス名が正しいことを確認してください。'<オブジェクト名>' がローカル オブジェクトでない場合は、ネットワークの接続を確認するか、サーバー管理者に問い合わせてください。

3078 の方は、
・The Microsoft Jet database engine cannot find the input table or query <name>. Make sure it exists and that its name is spelled correctly.
・入力テーブルまたはクエリ '<クエリ名>' が見つかりませんでした。そのテーブルやクエリが存在していること、または名前が正しいことを確認してください。
ですね。

誤って、別の mdb を開いているという可能性はありませんか?
返信 編集キー/


管理者用

- Child Tree -