Access (VBA)

Access VBAに関するフォーラムです。
  • 解決済みのトピックにはコメントできません。
このトピックは解決済みです。
質問

 
(Windows 11 Pro : Microsoft 365)
JET経由で.accdb"に接続できない
投稿日時: 24/02/05 12:16:45
投稿者: S.Kos

こんにちは、みなさま。
 
ネットワーク上に "foo.accdb" があり、クライアントPC(Win11)から読み書きしたい、と考えています。
 
1 PCからは"foo.accdb"が見えています
2 これを左ダブクリすると、PC内のACCESS(365 MSO 2401)が起動し、"foo.accdb"を読み書きできますが
3 PCに置いたEXCELファイル(VBA)から、JET経由で開こうとすると、
 
ntStr = "\\192.168.0.11\D:\hoNya\foo.accdb"
DbInfo.AdCon.Open "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=" & ntStr & ";"
 
が通りません。
 
上記1、2からは、ネットワーク設定にモンダイ無し、と思えるのですが・・
確認箇所(の手掛かり)をご教示いただけれは幸いです

回答
投稿日時: 24/02/05 15:43:56
投稿者: Suzu

ntStr = "\\192.168.0.11\D:\hoNya\foo.accdb"
 
\\ で始まるということは、ネットワーク上のパスでしょうが
そのパスに「:」が含まれることはありません。

投稿日時: 24/02/05 20:09:59
投稿者: S.Kos

Suzuさん、早速のご教示、ありがとうございます
>\\ で始まるということは、ネットワーク上のパスでしょうが
>そのパスに「:」が含まれることはありません。
>
どうやら「ネットワーク上のファイル指定」が理解できていないようです・・(涙)
最初の問いを、より詳しく再掲しますので、改めてご教示いただければ幸いです。
 
 
PC-1とPC-2でネットワークを構成しています
PC-1のIPは 192.168.0.11 で、PC-2からPINGが通ります。
 
PC-1のD:\ドライブにフォルダhoNyaを作成し、これを共有設定しました。
 
PC-2(のエクスプローラ)からPC-1の共有フォルダD:\hoNyaが見えています。
"foo.accdb"だけでなく、任意ファイルの読み書きも可能です。
 
この状況下、PC-2からPC-1の共有フォルダに置いた"foo.accdb"アクセスしたくて、
ntStr = "\\192.168.0.11\D:\hoNya\foo.accdb"
DbInfo.AdCon.Open "PROVIDER=Microsoft.ACE.OLEDB.12.0;Data Source=" & ntStr & ";"
としました。
 
PC-2(のエクスプローラ)から"foo.accdb"を観たときの記述に沿ってこのようにしたのですが、ここに間違いがあるのですね?
 
PC-1の共有フォルダに置いた"foo.accdb"を指定する書式(JETの接続文字列)をご教示いただければ幸いです。

回答
投稿日時: 24/02/05 22:27:44
投稿者: MMYS

S.Kos さんの引用:

どうやら「ネットワーク上のファイル指定」が理解できていないようです・・(涙)
最初の問いを、より詳しく再掲しますので、改めてご教示いただければ幸いです。

結論だけを言えば、
  エクスプローラで対象ファイルをシフトキーを押しながら右クリック。
  パスのコピー をクリック
これでフルパスが得られるので、あとは、貼り付ければ終わり。
 
 
これだけでは、何なので。
まず、UNCにドライブレターの概念はありません。
 
あと、そもそもですが、パスの概念を理解されてますか。
・ローカルとネットワークの違い
・ディスクドライブ と ドライブレター
・フォルダ
・特殊フォルダ
・パーティション
など。
また、「ディスクトップ」や「マイコンピュータ」はルートではない。ということは理解されておられますか。
さらに、なぜシステムが、AドライブやBドライブではなく、Cドライブなのか。
そのあたりを理解されと、UNCにドライブの概念がないのは、分ると思いますが。
 
 
S.Kos さんの引用:

PC-2(のエクスプローラ)からPC-1の共有フォルダD:\hoNyaが見えています。
"foo.accdb"だけでなく、任意ファイルの読み書きも可能です。

エクスプローラからではなく、アプリケーションから開く方法は理解されてますか。パスを理解れさていれば、難なく開けまずか。例えば、Excelブックなら、
  Excelを起動→「ファイル」→「開く」
で開けます。これか理解されてれば質問するほどのこととは思えませんけど。
 
 
ところで、
https://www.moug.net/faq/viewtopic.php?t=82552
S.Kos さんの引用:

ACCESSのデータファイル "DataFile.sccdb" をNASに置いて、C#による「foo.exe」からOLEDB経由で接続しています。

とありますが、この時は、どうやったのですか。フルパスを理解し、フルパスで正しく指定しないと、そもそも動きくませんけど。
 

投稿日時: 24/02/06 08:41:43
投稿者: S.Kos

MMYSさん、丁寧なご教示、感謝です。
 
>エクスプローラで対象ファイルをシフトキーを押しながら右クリック。
>
知りませんでした・・・、これで解決しました。
 
パスの凡そを判っていたつもりでしたが、
>まず、UNCにドライブレターの概念はありません。
>
は知りませんでした。
 
かってNASを用い \\192.168.83.201\Disk1\DataFile.accdb として動かしていました。
 
今回PC二台によるテスト環境を構成しようとして「ドライブレター」にハマりました。
 
なにはともあれ、ひと段落付きましたので、ここで閉じます。
みなさま、ありがとうございました。