Excel VBA에서 AWS Aurora에 연결
사무작업부터 프로그램까지 어떤 층에도 널리 활용되고 있는 것이 전능 신 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를 사용하는 등이 안전합니다.
그럼 사수해 주세요~(^-^)
Reference
이 문제에 관하여(Excel VBA에서 AWS Aurora에 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sheep29/items/86e71641c31175516f2e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
다음 사이트에서 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를 사용하는 등이 안전합니다.
그럼 사수해 주세요~(^-^)
Reference
이 문제에 관하여(Excel VBA에서 AWS Aurora에 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/sheep29/items/86e71641c31175516f2e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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를 사용하는 등이 안전합니다.
그럼 사수해 주세요~(^-^)
Reference
이 문제에 관하여(Excel VBA에서 AWS Aurora에 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sheep29/items/86e71641c31175516f2e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)