Excel VBAからAWS Auroraに接続する
Excelは全能にして絶対。
事務作業からプログラムまで、どんな層にでも広く活用されているのが全能伸Excel様なのだ。
先日、個別に管理されたファイルを結合しているとかいう崇高な仕事をしている人がいたので、
データベースに連携させるように提案したのですが、実際にやったことなかったのでやってみました。
ということで、今回はExcelをつかってAWSのAurora(MySQL)接続をやってみます。
Auroraを立てる
Auroraを立てていきましょう。
ポイントは2点。
①セキュリティグループでポートを開ける(3306)
②パブリックアクセス可能にチェックを入れる。
Aurora構築時にデータベースも作成しておきましょう。
ここでは「mydb」という名前でデータベースを立てることにします。
これでAuroraの環境が整いました。
MySQLドライバをインストール
以下のサイトからODBCドライバ(MySQL Connectors)をWindowsPCにインストールしましょう。
VBAを書く
テーブルを作成して、サンプルデータをインサートして、結果をSELECTするサンプルコードです。
Sub main()
Dim adoCon As Object ' ADOコネクション
Dim adoRs As Object ' ADOレコードセット
Dim CreateTableSQL As String ' SQL
Dim InsertSQL As String ' SQL
Dim SelectSQL As String ' SQL
CreateTableSQL = "create table tmp_tbl(id int,name nvarchar(255))"
SelectSQL = "select * from tmp_tbl"
' ADOコネクションを作成
Set adoCon = CreateObject("ADODB.Connection")
' ODBC接続
adoCon.Open _
"DRIVER={MySQL ODBC 8.0 Unicode Driver};" & _
" SERVER=****aurora-instance-1.cfu9dcigfnzc.ap-northeast-1.rds.amazonaws.com;" & _
" DATABASE=mydb;" & _
" UID=admin;" & _
" PWD=*****;"
'CreateTable 既にテーブルあればエラーを無視
On Error Resume Next
adoCon.Execute (CreateTableSQL)
On Error GoTo 0
'サンプルデータをインサート
For i = 1 To 10
int_rnd = Round(Rnd * 10000, 0)
InsertSQL = "insert into tmp_tbl(id,name) values(" & int_rnd & " ,'apple_" & int_rnd & "')"
adoCon.Execute (InsertSQL)
Next
' SELECTの実行
Set adoRs = adoCon.Execute(SelectSQL)
Do Until adoRs.EOF
Debug.Print adoRs.Fields(0) & ":" & adoRs.Fields(1)
adoRs.MoveNext
Loop
End Sub
注意事項
データベースをインターネットにさらすことになるので、
セキュリティグループなどで適切にアクセスは制御します。
もし商用で行う場合はVPN-Gatewayを使うなどが安全です。
それではご査収ください~(^-^)
Author And Source
この問題について(Excel VBAからAWS Auroraに接続する), 我々は、より多くの情報をここで見つけました https://qiita.com/sheep29/items/86e71641c31175516f2e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .