【问题标题】:Use vba to refresh & renew table links使用 vba 刷新和更新表链接
【发布时间】:2020-07-13 21:24:03
【问题描述】:

我设计了一个系统,用于跟踪客户活动并记录对部门的呼叫。前端和后端数据库都是用access编写的。该系统将交给我工作的公司的美国分部。

前端需要自动刷新表,如果后端数据库已经移动(当我将它发送到美国时它会移动),那么代码将查看一个函数来读取新数据库的位置。读取文本文件功能代码示例如下:

    Function ReadDbPassword()

'--
' Filetostring(FILEInput$ as variant) ' to make this a callable function
Dim FILEInput As Variant
'--

On Error GoTo FileToString_Error

FILEInput = "C:\Users\Public\databaseUser\PassCon"
Passmyfile = FreeFile
Open FILEInput For Input As Passmyfile

Passthedata4 = Input(LOF(Passmyfile), Passmyfile)
Close Passmyfile

On Error GoTo 0
Exit Function

FileToString_Error:

MsgBox "Error " & Err.Number & " (" & Err.Description & ")"

结束函数

文本文件包含如下路径:

P:\Projects\Database.accdb

我发现代码使用了与我想要的类似的想法,我一直在查看下面链接上的代码,但是我不完全理解这段代码是如何工作的,以便将其更改为我需要使用的内容读取的文本文件。

http://access.mvps.org/access/tables/tbl0009.htm

--------编辑 -------- 我已尝试编辑以下部分以使用阅读文本功能

Function fGetMDBName(strIn As String) As String
'Calls GetOpenFileName dialog
Dim strFilter As String

    strFilter = ahtAddFilterItem(strFilter, _
                    "Access Database(*.mdb;*.mda;*.mde;*.mdw) ", _
                    "*.mdb; *.mda; *.mde; *.mdw")
    strFilter = ahtAddFilterItem(strFilter, _
                    "All Files (*.*)", _
                    "*.*")

    fGetMDBName = ahtCommonFileOpenSave(Filter:=strFilter, _
                                OpenFile:=True, _
                                DialogTitle:=strIn, _
                                Flags:=ahtOFN_HIDEREADONLY)
End Function

通过将所有代码替换为 fGetMDBName = Passmyfile

【问题讨论】:

  • 你不明白的部分是什么?你试过什么?
  • 请参阅标有编辑的部分。我可以按照代码刷新链接,之后当它开始寻找新的数据源时,我迷路了,无法理解它是如何尝试从新源加载表的。

标签: ms-access vba ms-access-2007


【解决方案1】:

您正在尝试将苹果和橙子混合在一起。以下是我的建议:

  1. 确保您的模块具有“Option Explicit”,然后编译所有代码。我看到引用的变量,但不知道它们是什么类型。
  2. 更改函数“ReadDbPassword()”以返回字符串变量,然后将其设置为返回 Passthedata4。
  3. 您列出的第二个函数 (fGetMDBName) 是打开一个文件对话框以允许您选择一个文件名。您不需要这样做,因为您已经拥有第一个函数的文件路径/名称。
  4. 然后调整您找到的执行重新链接的代码,以使用您的子例程中的路径/名称。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多