質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

SharePoint

SharePointは、マイクロソフトにより開発された、ソフトウェア開発のドキュメント管理やコラボレーションを行うプラットフォームの総称です

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

Q&A

解決済

1回答

6020閲覧

SharePoint上のAccessのファイルにローカルPCのExcel VBAからアクセスしたい(OneDriveを使用せず直接)

kenjit056

総合スコア11

VBA

VBAはオブジェクト指向プログラミング言語のひとつで、マクロを作成によりExcelなどのOffice業務を自動化することができます。

SharePoint

SharePointは、マイクロソフトにより開発された、ソフトウェア開発のドキュメント管理やコラボレーションを行うプラットフォームの総称です

Access

Accessはマイクロソフトによるリレーショナルデータベース管理システムです。オブジェクト指向のアプリケーション作成に対応しており、テーブルや編集をはじめ、クエリ生成、入力フォーム作成、レポート作成など一通りの機能を備えています。

0グッド

0クリップ

投稿2020/07/18 09:31

前提・実現したいこと

SharePoint上に置いたMicrosoft AccessのデータベースファイルにローカルPCのExcel VBAで作成したプログラム(マクロ)からアクセスしたいと考えています.なお,OneDriveを使用せず直接ローカルPCからSharePoint上のファイルへアクセスしたいと思いますが可能でしょうか?
SharePoint上のMicrosoft Accessのデータベースファイルのパスをどのように記述すれば良いか分りません.
いくつか試してみましたがエラーが出てうまくいきません.
どなたか解決策をご指南頂けないでしょうか?

エラーメッセージ 「実行時エラー’-2147467259(80004005)’,ファイル名が正しくありません.」

該当のソースコード

言語名
Office 365 ProPlus
Excel(Ver1808) VBA

下記ソースコードにはファイル名として(1)と(2)の2つを記載していますが,実際にはいずれか一方を使用します.

(1)はOneDriveを使用し,ローカルPCのエクスプローラーから当該ファイルにアクセスする際のパス.このパスを使用すると下記ソースコードにて正常にアクセスできます.

一方,(2)はSharePoint上の当該ファイルを直接指定するパス.これはマクロの冒頭でファイル選択ダイアログを表示させ,当該ファイルを選択した際に得られるものです.しかし,実際に得られたパスであるにも関わらず,このパスを使用すると下記ソースコードの(3)の部分で中断し上記エラーが表示されます.

Sub abc() Dim f As String f = "C:\Users****\xxxx.accdb" '<-(1) f = "https://****.sharepoint.com/sites/****/Shared Documents/xxxx.accdb" '<-(2) Dim adoCn As Object Dim adoRs As Object Set adoCn = CreateObject("ADODB.Connection") Set adoRs = CreateObject("ADODB.Recordset") adoCn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & f & ";" '<-(3)

試したこと

SharePoint,およびTeamsにて当該ファイルの「リンクをコピー」コマンドを実行して得られるパスも試してみましたが,やはりエラーとなりました.

補足情報(FW/ツールのバージョンなど)

VBEの「ツール」/「参照設定」にて「Microsoft ActiveX Data Objects 2.8 Library」をONにしています.

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

回答ではありません。
SharePoint にデータをインポート、リンク、または移動する

注意 Access データベースファイルを OneDrive または SharePoint ドキュメントライブラリに保存することもできますが、これらの場所から、Access データベースを開くことは避けることをお勧めします。 ファイルはローカルにダウンロードされ、変更内容を SharePoint に保存した後でもう一度アップロードすることができます。 複数のユーザーが SharePoint から Access データベースを開くと、データベースのコピーが複数作成され、予期しない動作が発生する可能性があります

投稿2020/07/18 11:27

sazi

総合スコア25195

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kenjit056

2020/07/18 11:43

アドバイスありがとうございます.実はご指摘の現象を自分でも確認しており,懸念していたところです. 社内のグループメンバー(5,6人程度)でDBファイルを共用したいのですが,どのようなシステムがふさわしいでしょうか? コストのかかる本格的なものは無理なのですが,複数人で同時に読み書きができて,アクセス速度もそこそこのものはありますでしょうか? Office365を使用している為,それに付随するアプリで事足りるのなら手っ取り早いのですが.
sazi

2020/07/18 22:17

先ずは、ファイルサーバーに配置ですね。
kenjit056

2020/07/21 13:56

お返事遅くなりました.アドバイス頂きましたようにファイルサーバーにデータベースファイルをファイルを置くことにしました. ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問