VBA有psycopg2风格的方式连接到PostgreSQL吗



我一直在Python中使用psycopg2在SQL中运行查询。这很简单,我只做以下操作:

conn2 = psycopg2.connect('postgresql://YourUserName:YourPassword@YourHost:5432/YourDatabase')
query = "xxx"
query_output = pd.read_sql_query(query, conn2).drop_duplicates(keep='first')

有可能在VBA中实现类似的简单操作吗?我希望创建一个易于使用的excel插件,这样就可以避免要求用户必须在ODBC驱动程序管理器中设置32位驱动程序。

我正试图在这里开发一个设置:

Dim objDb_con
Dim strSomeValue As String
Set objDb_con = CreateObject("ADODB.Connection")
Set Rsdatatype = CreateObject("ADODB.RecordSet")
glbConnString = "Driver={PostgreSQL UNICODE};Database=XX;port=XX;server=XX;UID=XX;Pwd=XX;"
objDb_con.Open glbConnString

但我得到了错误:

[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

环顾四周,这似乎与ODBC驱动程序管理器有关,即使我试图将默认设置为32位,我仍然会收到这个错误。

VBA是否有一种psycopg2风格的替代方案,它很简单,不需要用户设置?

我总是从这个网站提取连接字符串:

https://www.connectionstrings.com/progress/

它们清楚地表明没有内置的。NET库或用于PostGress的OLE DB提供程序。因此,您无法绕过安装驱动程序。你可以打包一个安装程序来自动化这个过程。

如果你安装了ODBC驱动程序,你会使用这样的连接字符串:

标准

仅包括要从系统DSN设置中覆盖的参数

DSN=myDSN;HOST=myServerAddress;DB=myDataBase;UID=myUsername;PWD=myPassword;PORT=2055;

使用长名称的替代方案

仅包括要从系统DSN设置中覆盖的参数

DataSourceName=myDSN;HostName=myServerAddress;Database=myDataBase;LogonID=myUsername;Password=myPassword;PortNumber=2055;

最新更新