forget for get

覚えるために忘れる

エクセルからMySQLに接続

MySQL ODBCドライバをインストール

https://dev.mysql.com/downloads/connector/odbc/

 

使うエクセルが2007(32bit)だったので、8.0を選択。

 

ODBCデータソースの設定

コントロールパネルのODBCデータソースアドミニストレータ(32ビット)を使用して、MySQLの接続情報を設定

MySQLサーバーのIPアドレス、データベース名、ユーザー名、パスワードを入力

 

MySQL権限設定

VirtualBoxMySQLに接続しようとしたけどエラー。

権限を設定しないといけない。

CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'password';

GRANT SELECT, INSERT, UPDATE, DELETE ON lightwill.* TO 'remoteuser'@'%';

FLUSH PRIVILEGES;

外部からアクセスできるユーザを作成。

SELECT, INSERT, UPDATE, DELETE の権限を付与。

反映。

 

エクセルマクロ(VBA

Sub AccessMySQL()
    Dim conn As Object
    Dim rs As Object
    Dim strSql As String
    Dim strConn As String
    
    ' MySQLへの接続情報を設定
    strConn = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=192.168.33.10;Database=lightwill;Uid=remoteuser;Pwd=password;"
    
    ' ADO Connectionオブジェクトを作成
    Set conn = CreateObject("ADODB.Connection")
    
    ' 接続を開く
    conn.Open strConn
    
     ' SQLクエリを作成
    strSql = "SELECT * FROM dp_comments order by id desc LIMIT 0, 30;"
    
    ' ADO Recordsetオブジェクトを作成
    Set rs = CreateObject("ADODB.Recordset")
    
    ' RecordsetにSQLクエリの結果を格納
    rs.Open sql, conn
    
    ' データをExcelに貼り付け
    Sheet1.Range("A1").CopyFromRecordset rs
    
    ' 接続を閉じる
    rs.Close
    conn.Close
    
    ' オブジェクトの解放
    Set rs = Nothing
    Set conn = Nothing
End Sub