将MS Access连接到PostgreSQL Server

ej83mcc0  于 2023-08-04  发布在  PostgreSQL
关注(0)|答案(5)|浏览(146)

我无法连接到我们的 postgres 服务器。我得到了用于将ms访问连接到我们的SQL Server的代码。它应该是 * 无DSN *,我已经安装了一个ODBC-driver,现在我坚持寻找正确的连接字符串写入访问' vba代码。
我知道应该是这样的:

stConnect = "ODBC;Driver={PostgreSQL UNICODE};Data Provider=pgsqlODBC;hostaddr=[IP-adress];Port=61000;dbname=TE_TestFirst;user=admin;password=testtest;"

字符串
或者像这样:

stConnect = "ODBC;Driver={PostgreSQL UNICODE};Data Provider=pgsqlODBC;SERVER=[IP-adress];PORT=61000;DATABASE=TE_TestFirst;UID=admin;PWD=testtest;"


我读到64 Bit-Pcs需要被赋予“数据提供者”。然而,除了我们不想要的DSN版本之外,什么都不起作用。我从各个方面复制了无数的连接线,也许我在监督什么?
我期待着你的答复,并提前感谢你。布丁勒费尔

balp4ylt

balp4ylt1#

我找到了一种在MS Access模块中创建User-DSN的方法,然后使用该模块连接到服务器。这不是很漂亮的代码,但它工作。对于那些寻找类似解决方案的人:

'Creating User DSN
    strAttributes = "Description=I did this myself" & Chr(13) & "Server=[Servername/ID]" & Chr(13) & "Database=TE_TestFirst" & Chr(13) & "Username=admin" & Chr(13) & "Password=***" & Chr(13) & "Port=61000"
    DBEngine.RegisterDatabase "DSNnew", "PostgreSQL Unicode", True, strAttributes
    MsgBox "DSN has been created", vbInformation

    Connection String
    stConnect = "ODBC;DSN=DSNnew;Server=[IP-adress];Port=61000;Database=TE_TestFirst;Uid=admin;Pwd=****;"

字符串
正如你所看到的,信息被嵌入了两次,我真的不喜欢,但目前还可以。您可以使用ODBC管理器检查已创建的DSN。
你可以在这里找到原始代码
此外,这个code是我们从服务器到MS Access获取表的方式。虽然这个例子是关于SQL Server的,但它在PostgreSQL上也能很好地工作!(正如我现在看到的,这方面也提供了一个关于创建DSN的解决方案)

xesrikrc

xesrikrc2#

大概是这样的:

stConnect = "Driver={PostgreSQL Unicode(x64)};Servername=dbtest;Port=5432;UID=postgres;Database=postgres;Password=****";

字符串

oaxa6hgo

oaxa6hgo3#

我还没能用一个没有DSN的连接字符串解决这个问题,但是用一个DSN file,就像@Erik货车Asmuth和@krish KM说的那样。
DSN文件位于我的Documents文件夹中(ODBC管理员将其自动保存在此文件夹中。你可以把它移动到任何地方,但是你必须写路径而不是文件名)
我通过MS Access中的VBA Code打开它,连接字符串如下:

stConnect = "ODBC;FILEDSN=PGUnicode32;Server=[IP-adress];Port=61000;Database=TE_TestFirst;Uid=admin;Pwd=****;"

字符串
Access得到一个连接并加载表TE-TestFirst。再次感谢你们。我现在将尝试通过没有文件的连接字符串进行连接

zpgglvta

zpgglvta4#

最后,我们做了以下工作:
使用如上所示的连接字符串“PostgreSQL Unicode(x32)”+使用different script连接到
它现在工作得很好,没有DSN:)

j2datikz

j2datikz5#

Office 365的变化以前好像比现在容易多了。我觉得这让人抓狂,唯一真实的的暗示来自@Andrey-Belykh的回应。
这是我发现的真正有效的方法
在“外部数据”->“链接表管理器”下,单击“添加”。弹出以下对话框:
x1c 0d1x的数据
选择底部选项“自定义”。
然后这个令人抓狂的没有帮助的对话框没有任何文档(或者显示在线帮助):



要知道您放了什么,您需要ODBC驱动程序的准确描述--现有的ODBC连接对此有很大的帮助。并且描述需要在花括号内:



因此,在这种情况下,连接字符串以以下开头:

DRIVER={PostgreSQL Unicode(x64)};

字符串
数据源路径可以简单地是“ODBC”,在DRIVER=语句之后,您可以放入实际的连接字符串:



从那里弹出一个普通的对话框,其中包含每个表和视图。
我希望这能帮助到一些人,为他们节省我刚刚浪费在想办法解决这个问题上的时间。

相关问题