次の方法で共有

ADODB.Connectionで共有フォルダ内のExcelファイルを複数端末から利用したい

Anonymous
2011-04-08T02:33:41+00:00

初めて投稿させていただきます。よろしくお願いいたします。

ネットワーク共有フォルダ内のExcelファイルを複数の端末から

同時(読み取り専用)で利用しようとして、下記のように

ADODB.Connectionを作成したのですが、2台目の端末から

ADODB.ConnectionのOpenでエラーになります。

    Set con = New ADODB.Connection

    con.Mode = adModeRead Or adModeShareDenyNone

    con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _

        "Data Source=""" & C_ExcelFile & """;" & _

        "Extended Properties=""Excel 8.0;HDR=Yes;"";"

1台目を接続中に確認のため、2台目の端末から直接Excelで

同ファイルを開こうとすると、ロック状態で、開けませんでした。

もしかすると、ネットワーク共有フォルダ内のExcelファイルを

ADODB.Connectionで同時利用することはできなのでしょうか。

また、同時利用するにはどのようにすればいいでしょうか。

よろしくお願いいたします。

Microsoft 365 と Office | Excel | 家庭向け | Windows

ロックされた質問。 この質問は、Microsoft サポート コミュニティから移行されました。 役に立つかどうかに投票することはできますが、コメントの追加、質問への返信やフォローはできません。

0 件のコメント コメントはありません

質問作成者が受け入れた回答

Anonymous
2011-04-08T07:48:43+00:00

正直なところ、ADODBはたまにしか使ったことがありませんし、ネットワーク上の共有フォルダで操作した経験はありませんので、ヒットした情報提供だけです。

[HOWTO] Visual Basic または VBA から ADO を Excel データで使用する

http://support.microsoft.com/kb/257819/ja

によると、ディフォールトは読み取り専用ですから、できるはずです。

が、もし、ロック状態で開けないとしたら、

 ReadOnly=True;

と明示してみたらいかがでしょうか?

この回答は役に立ちましたか?

0 件のコメント コメントはありません

7 件の追加の回答

並べ替え方法: 最も役に立つ
  1. Anonymous
    2011-04-19T00:22:17+00:00

    y sakuda さん、石田さん、ありがとうございました。

    解決できましたので、報告いたします。

    なぜか分からないのですが、次のようにしたら、解決しました。

    con.Mode = adModeRead Or adModeShareDenyNone

    con.Mode = 1

    にして、

        Set con = New ADODB.Connection

        con.Mode = 1

        con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _

            "Data Source=""" & C_ExcelFile & """;" & _

            "Extended Properties=""Excel 8.0;HDR=Yes;"";"

    これで、複数端末からの利用が出来るようになりました。

    定数を設定していたらダメで、数値を設定したらOK。?

    また、con.Mode = 17 (adModeShareDenyNoneを付けると)では、

    ダメでした。

    一応解決したので、作成を進めようと思います。

    ありがとうございました。

    この回答は役に立ちましたか?

    1 人がこの回答が役に立ったと思いました。
    0 件のコメント コメントはありません
  2. Anonymous
    2011-04-19T01:10:57+00:00

    >定数を設定していたらダメで、数値を設定したらOK。?

    ADOオブジェクトどういう風に使ってらっしゃいますか?

    もし、レイトバインド(CreateObject)でやってるんでしたら、当然ADODBの名前空間の名前定数は使えません。

    Option Explicitをコードモジュールの頭に付けて実行すると、adXXXの定数が未定義だと怒られるんじゃないかな?

    名前定数を使用するのでしたら、事前にしかるべきオブジェクトに参照設定してアーリーバインドにする必要があります。(VBAでADODB.Connectionに参照設定できるのかどうかは存じません)

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  3. Anonymous
    2011-04-15T06:36:51+00:00

    y sakuda さん、情報ありがとうございます。

    commonrope さん、こんにちは。

    y sakuda さんからいただいた情報がご参考になればと思います。

    同じような情報をお探しの方にも、こちらをご参考いただければと思い、今回は私の方で \[回答としてマーク\] をさせていただきました。

    マークをした後でも投稿は出来ますので、引き続きみなさんからの情報も集めていただければと思います。

    今後も Answers をよろしくお願いします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません
  4. Anonymous
    2011-04-08T08:21:23+00:00

    返信、ありがとうございます。

    デフォルトで読み取り専用ですよね。

    読み取り専用でもロックされるのかと思い、

    con.Mode = adModeRead Or adModeShareDenyNone

    で、シェアモードも追加したのですがダメなのです。

    また、ファイルそのものも共有設定にしてもダメでした。

    教えていただいたサイトを見て、もう少しがんばってみます。

    また、ADOではなく、別の方法等がありましたら、

    よろしくお願いいたします。

    この回答は役に立ちましたか?

    0 件のコメント コメントはありません