Connecting Excel to PostgreSQL via VBA Connecting Excel to PostgreSQL via VBA postgresql postgresql

Connecting Excel to PostgreSQL via VBA


Create a table or view in PostgreSQL that describes the data you want.

Use an ODBC or ADO connection from VBA to connect to PostgreSQL. If using ODBC you'll need to create a DSN via odbcad32.exe then use the DSN in VB, it isn't easy to just connect directly.

See:

Better written eample that uses Oracle, but the principles are the same - ODBC/ADO.


Here's some code can use as reference. Hope it helps.

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


Even for 64-bit Windows, Excel VBA needs the 32-bit ODBC driver.

Create a DSN via %windir%\SysWOW64\odbcad32.exe. Indeed, typing odbcad32.exe points towards the 64-bit version where you can't find the proper 32-bit drivers by default.

Source: https://github.com/windweller/postgresql-excel-addIn