LoginSignup
6
11

More than 5 years have passed since last update.

[Excel]AccessのテーブルをExcelに連携する。SQLで絞り込む。

Last updated at Posted at 2017-03-24

Office365 BusinessでもAccessが使えるようになったのでエクセルで管理していたデータをAccessに移行しました。
Accessはあまり触れてこなかったので簡単な内容ではありますがデータ接続の方法をメモします。※Office2016でしか試してません。

やりたいこと

↓Accessのデータを
10.png

↓Excelで表示します。
11.png

やったこと

データタブのAccessデータベース接続からデフォルト設定で接続しました。

13.png

これでできました。思った以上に簡単でした。

11 - コピー.png

ついでに

折角なので再取得ボタン用のマクロを作成しようと思います。
テーブル名を「Users」に変更して下記コードをボタンに登録します。

sample
Sub Sample()
    ThisWorkbook.Worksheets("Sheet1").ListObjects("Users").Refresh   
End Sub

データを再取得できました。簡単すぎます。

SQLも書いてみる。

[データ]-[接続]-[ブックの接続]で名前を確認します。
12.png

Databese1でしたのでConnectionsから接続文字列を変更します。

sample
Sub Sample()
    Dim sql As String
    sql = "SELECT FamilyName, FirstName FROM users WHERE Age >= 20"
    ThisWorkbook.Connections("Database1").OLEDBConnection.CommandText = sql

    ThisWorkbook.Worksheets("Sheet1").ListObjects("Users").Refresh    
End Sub

15.png

絞り込まめました。
もっと、こう、ForでまわしてRangeを指定してセルにセットして・・・、なんてことを考えていましたが予想以上に簡単でした。

そのほか

Accessを立ち上げていたり、Excel起動時にAccessを立ち上げたりすると共有エラーが出ることがありました。
ただこれは、デフォルトの接続設定ではアクセス許可が「Share Deny Write」になっていたためでした。
ReadやReadWrite、Share Deny Noneにすると解消されました。

3.png

6
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
11