none
[Sharepoint]ExcelからAccessに接続時に「実行時エラー'-2147467259」 RRS feed

  • 質問

  • Accessに接続する際に実行エラーで思うようにいかず困っております。
    VBAそのものが初めて触りますので、解決方法をご教示のほど宜しくお願い致します。

    ■やりたいこと
    予約表を作成したい。
    SharePoint Online上にAccessファイル(.accdb)を保存してローカルに保存してあるExcelアプリからAccessの情報を取得する。
    Accessをデータベースとして運用。Excel上で値の変更、更新してAccessファイルに転送を行いたい(主に操作はExcel)。
    社内の人がローカルでExcelを操作してSharepoint上(クラウド)に存在するAccessファイルに接続して予約できるようにしたい。

    ■エラー内容
    実行時エラー'-2147467259(80004005)':
    「ネットワークへのアクセスが中断されました。接続するには、データベースをいったん閉じて開き直してください。」

    [参照設定]
    Microsoft ActiveX Data Objects 6.1 Library
    Microsoft Access 16.0 Object Library
    Microsoft HTML Object Library

    参考:http://e-vba.com/access-excel1/

    ==================
    Option Explicit 
    Dim con As New ADODB.Connection 
    Dim rs As New ADODB.Recordset
    Private Sub Workbook_Open()
     
    'データベース(DB)接続
       Dim myWBPath As String
       Dim constr As String, pswd As String, pas As String
       Dim i As Long
       Worksheets("date").Select
       
       pswd = "" '←Accessファイルにパスワードは設定しておりませんので空白
       pas = ""  '←ここSharepointのパスを入力
     
     '----------データベースに接続-------------
      constr = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
     "Data Source=" & pas & ";" & _
     "Jet OLEDB:Database Password=" & pswd & ";"
      con.Open ConnectionString:=constr  ←★ここでエラーになります。
                     ' ↓テーブル名
      rs.Open Source:="会員名簿", ActiveConnection:=con, _
      CursorType:=adOpenKeyset, LockType:=adLockOptimistic
     '--------------------------------------
    Range("A2").CopyFromRecordset Data:=rs

    End Sub

    2020年2月18日 5:43

すべての返信

  • > pas = ""  '←ここSharepointのパスを入力

    こちらは、UNCパスが必要になるかと思います。SharePoint Online上のファイルは、直接UNCパスで指定できないため、OneDrive同期ツールやドライブにマウントするなりで、ACCESSファイルをUNCパスで指定できる箇所にもってくる必要があるかと思います。

    2020年2月18日 10:48