ExcelのVBAからSELECT
のようなクエリを作成して、ExcelからPostgreSQL DBにクエリを実行することはできますか?
可能であれば、データベースへの接続方法を教えてください。 Googleを探していましたが、結果が見つかりませんでした。
必要なデータを説明するテーブルまたはビューをPostgreSQLで作成します。
ODBCまたはADO VBAからの接続を使用してPostgreSQLに接続します。ODBCを使用する場合は、を作成する必要があります。 odbcad32.exe
経由のDSNは、VBでDSNを使用します。直接接続するのは簡単ではありません。
見る:
Oracleを使用するより適切に記述された例 ですが、原則は同じです-ODBC/ADO。
参照として使用できるコードを次に示します。それが役に立てば幸い。
Sub SelectBasic()
Dim objDb_con
Dim strSomeValue As String
Set objDb_con = CreateObject("ADODB.Connection")
Set Rsdatatype = CreateObject("ADODB.RecordSet")
glbConnString = Trim(ActiveSheet.Range("B1").Value)
//Connection string format:Driver={PostgreSQL Unicode};Database=MyDB;server=192.16*.*.**;UID=USERID;Pwd=pasword //comment it
If glbConnString = "" Then
MsgBox "Enter the Connection String"
Else:
objDb_con.Open glbConnString
strSql = "select strSomeValue from SOMETABLE where Something=1"
Rsdatatype.Open strSql, objDb_con, adOpenKeyset, adLockpessimistic
If Rsdatatype.EOF = False Then strSomeValue = Rsdatatype.Fields(0).Value
Rsdatatype.Close
End If
objDb_con.Close
End Sub
64ビットWindowsの場合でも、Excel VBAには 2ビットODBCドライバー が必要です。
%windir%\SysWOW64\odbcad32.exe
を介してDSNを作成します。実際、odbcad32.exe
と入力すると、デフォルトで適切な32ビットドライバーが見つからない64ビットバージョンを指します。