From: Łukasz Jarych [mailto:jarys...@gmail.com]
Sent: Monday, June 04, 2018 12:30 AM
To: Adrian Klaver <adrian.kla...@aklaver.com>
Cc: pgsql-gene...@postgresql.org >> PG-General Mailing List 
<pgsql-gene...@postgresql.org>
Subject: Re: VBA to connect to postgresql from MS Access

Thank you Adrian,

in answer to response in link:

This connection string is not working for me.

Ma macro is:

Public Sub InitConnect()

On Error GoTo ErrHandler

    Dim dbCurrent As DAO.Database
    Dim qdf As DAO.QueryDef
    Dim rst As DAO.Recordset
    Dim cnn As Object

    Set cnn = CreateObject("Adodb.Connection")

  sConnString = "DRIVER={PostgreSQL 
Unicode(x64)};DATABASE=AccessTest;SERVER=localhost;PORT=5432;UID=postgres;PWD=1234;"

  cnn.Open sConnString

    Set dbCurrent = DBEngine(0)(0)
    Set qdf = dbCurrent.CreateQueryDef("")

    With qdf
        .Connect = sConnString
        .SQL = "select CURRENT_USER;"
        Set rst = .OpenRecordset(dbOpenSnapshot, dbSQLPassThrough)
    End With
   '' InitConnect = True

ExitProcedure:
    On Error Resume Next
        Set rst = Nothing
        Set qdf = Nothing
        Set dbCurrent = Nothing
    Exit Sub
ErrHandler:
    ''InitConnect = False
    MsgBox Err.Description & " (" & Err.Number & ") encountered", _
        vbOKOnly + vbCritical, "InitConnect"
    Resume ExitProcedure
    Resume
End Sub

And my conf file is in attachment.

Only this strange DSN less conn string is working:

 
ODBC;DSN=PostgreSQL35W;DATABASE=AccessTest;SERVER=localhost;PORT=5432;*CA=d;A7=100;B0=255;B1=8190;BI=0;C2=;CX=1c305008b;A1=7.4*

Why?

Best,
Jacek





If you’re using a 32 bit version of MS Access, you need to use the 32 bit ODBC 
driver not the 64 bit driver.  Try changing the connection string from 
sConnString = "DRIVER={PostgreSQL 
Unicode(x64)};DATABASE=AccessTest;SERVER=localhost;PORT=5432;UID=postgres;PWD=1234;"
 to sConnString = "DRIVER={PostgreSQL 
Unicode};SERVER=localhost;DATABASE=AccessTest;PORT=5432; UID=postgres;PWD=1234;"

Mike

Reply via email to