SELECT
のようなクエリをExcelのVBAから作成することは可能ですか?ExcelからPostgreSQL DBをクエリできますか?VBAを使用してExcelをPostgreSQLに接続する
可能であれば、データベースへの接続方法を教えてください。私はGoogleで探していたが、結果が見つかりませんでした。
SELECT
のようなクエリをExcelのVBAから作成することは可能ですか?ExcelからPostgreSQL DBをクエリできますか?VBAを使用してExcelをPostgreSQLに接続する
可能であれば、データベースへの接続方法を教えてください。私はGoogleで探していたが、結果が見つかりませんでした。
PostgreSQLで必要なデータを記述したテーブルまたはビューを作成します。
VBAのODBCまたはADO接続を使用してPostgreSQLに接続します。 ODBCを使用している場合は、odbcad32.exe
経由でDSNを作成し、VBでDSNを使用する必要があります。直接接続するのは簡単ではありません。
参照してください:
Better written eample that uses 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には32-bit ODBC driverが必要です。
%windir%\SysWOW64\odbcad32.exe
でDSNを作成します。実際には、odbcad32.exe
と入力すると、デフォルトで適切な32ビットドライバが見つからない64ビットバージョンが示されます。
出典:https://github.com/windweller/postgresql-excel-addIn(良好であり、あなたよりも詳細があります)クレイグの答えはすでに32ビットの問題を指摘し、@
。あなたは本当にこの答えでそれに任意の価値を追加しますか? – Alexander
実際、私は** ExcelをPostgreSQLにVBA経由でCraigの答えで接続することも、StackOverflowの他のすべての答えと接続することもできませんでした。 'odbcad32.exe'の潜在的な問題は何も言及していません。 私には明らかではないかもしれませんが、ウェブ上の未解決のスレッドの数によって、私は一人ではないと思います。フォーマット問題のためにGithub上のExcelアドインは機能しませんが、その手順は説明するのに優れています。 私の答えを公開したくない場合は、私は気にならないでしょうが、将来私と同じような問題に遭遇する人もいます。 – Candide