web-dev-qa-db-ja.com

VBAを介してExcelをPostgreSQLに接続する

ExcelのVBAからSELECTのようなクエリを作成して、ExcelからPostgreSQL DBにクエリを実行することはできますか?

可能であれば、データベースへの接続方法を教えてください。 Googleを探していましたが、結果が見つかりませんでした。

9
vivid

必要なデータを説明するテーブルまたはビューをPostgreSQLで作成します。

ODBCまたはADO VBAからの接続を使用してPostgreSQLに接続します。ODBCを使用する場合は、を作成する必要があります。 odbcad32.exe経由のDSNは、VBでDSNを使用します。直接接続するのは簡単ではありません。

見る:

Oracleを使用するより適切に記述された例 ですが、原則は同じです-ODBC/ADO。

6
Craig Ringer

参照として使用できるコードを次に示します。それが役に立てば幸い。

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
7
subZero

64ビットWindowsの場合でも、Excel VBAには 2ビットODBCドライバー が必要です。

%windir%\SysWOW64\odbcad32.exeを介してDSNを作成します。実際、odbcad32.exeと入力すると、デフォルトで適切な32ビットドライバーが見つからない64ビットバージョンを指します。

ソース: https://github.com/windweller/postgresql-Excel-addIn

0
Candide