postgresql - 通过 VBA 自动链接/刷新 MS Access 中的 ODBC 链接表

标签 postgresql vba ms-access

有人知道在 MS-Access 2010 中自动链接和刷新 Postgres 链接表(通过 ODBC)的 VBA 程序吗?这是因为我正在寻找无 DSN 的连接,以使用户更轻松。

最佳答案

以下 VBA 代码将创建具有无 DSN 连接的 PostgreSQL 链接表...

Sub linkTo_PostgreSQL()
    createLinkedTable_PostgreSQL "public.table1"
    ' repeat as necessary...
End Sub

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 ODBC Driver(UNICODE)};Server=localhost;Port=5432;Database=linkedDB;Uid=pgUser1;Pwd=pgUser1password;"
    tbd.SourceTableName = PostgreSQL_tableName
    tbd.Name = Replace(PostgreSQL_tableName, ".", "_", 1, -1, vbTextCompare)  ' e.g. "public.table1"->"public_table1"
    tbd.Attributes = dbAttachSavePWD

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

以下代码将刷新任何现有 PostgreSQL 链接表的链接:

Sub refreshLinked_PostgreSQL()
    Dim cdb As DAO.Database, tbd As DAO.TableDef
    Set cdb = CurrentDb
    For Each tbd In cdb.TableDefs
        If tbd.Connect Like "ODBC;Driver={PostgreSQL*" Then
            Debug.Print "Refreshing [" & tbd.Name & "] ..."
            tbd.RefreshLink
        End If
    Next
    Debug.Print "Done."
    Set tbd = Nothing
    Set cdb = Nothing
End Sub

关于postgresql - 通过 VBA 自动链接/刷新 MS Access 中的 ODBC 链接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15440910/

相关文章:

vba - 自动填充公式

ms-access - 如何在 VBA 代码中的 ms-access 中执行查询?

ruby-on-rails - 有什么理由在 ActiveRecord 中使用数据库连接池吗?

VBA如果最后两个字符等于 "XX"则删除整行

postgresql - 通过在 postgresql 上声明变量来选择查询

sql-server - Access 传递查询能否查看使用 ADO 和/或 SSMS 创建的 SQL Server 上的全局临时表?

mysql - 如何将 LIKE 与列名一起使用 (2)

java - "language converters"的经验?

mysql - 如果我们通过同一字段的不同值进行搜索,可以在 SQL 查询中将 OR 替换为更短的条件吗

Django 函数与数据库函数