gpt4 book ai didi

vba - Access 2010访问PostgreSQL无法更新

转载 作者:行者123 更新时间:2023-11-29 12:20:33 25 4
gpt4 key购买 nike

我有一个正在使用的访问程序,它需要访问我们 PostgreSQL 服务器上的一些数据。我遇到的问题是链接是以只读方式创建的。如果我使用访问中的菜单项来创建链接,那么它工作正常。我的最终用户将使用运行时访问权限,因此无权访问菜单。

这是执行链接的代码:

Sub createLinkedTable_PostgreSQL(PostgreSQL_tableName As String)
Dim cdb As DAO.Database, tbd As DAO.TableDef
Set cdb = CurrentDb
Set tbd = New DAO.TableDef

tbd.Connect = "ODBC;Driver={PostgreSQL ANSI};Server=10.10.10.200;Port=5432;Database=BIO-Static;" & _
"UID=UserID;PWD=Password;"
tbd.SourceTableName = PostgreSQL_tableName

tbd.Name = Replace(PostgreSQL_tableName, ".", "_", 1, -1, vbTextCompare)
' e.g. "public.table1"->"public_table1"

cdb.TableDefs.Append tbd
Set tbd = Nothing
Set cdb = Nothing
End Sub

我如何才能在更新模式下打开表格?

最佳答案

创建 ODBC 链接表时,Access 将使用远程表中的主键(如果有的话)。但是,如果

  • 远程表没有主键,或者
  • 您正在链接到远程数据库中的未索引 View

那么ODBC链表就没有主键了。在这种情况下,您将能够从 ODBC 链接表中读取,但您将无法更新它。

可能的解决方案是:

  1. 将主键添加到远程表,然后重新创建 ODBC 链接表,或者
  2. 创建 ODBC 链接表,然后使用 CREATE UNIQUE INDEX ... 为其提供主键,如相关答案 here 中所述。

关于vba - Access 2010访问PostgreSQL无法更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27206961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com