Excel VBA에서 AWS Aurora에 연결

2895 단어 VBASQL오로라AWS
Excel은 전능하고 절대.
사무작업부터 프로그램까지 어떤 층에도 널리 활용되고 있는 것이 전능 신 Excel 같은 것이다.

요 전날, 개별적으로 관리된 파일을 결합하고 있다고 하는 숭고한 일을 하고 있는 사람이 있었으므로,
데이타베이스에 제휴하도록(듯이) 제안했습니다만, 실제로 한 적 없었기 때문에 해 보았습니다.
그래서 이번에는 Excel을 사용하여 AWS Aurora (MySQL) 연결을 시도합니다.



오로라를 세우다



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를 사용하는 등이 안전합니다.

그럼 사수해 주세요~(^-^)

좋은 웹페이지 즐겨찾기