我有一个 2013 MS Access 数据库,在不同位置有多个用户。我有几个 excel 文件作为链接表。Excel 文件位于共享驱动器上,因此所有用户都可以访问该信息。我们遇到的问题是共享驱动器速度很慢,因此加载报表需要很长时间。
我想要VBA代码,当用户打开数据库时,共享驱动器Excel文件会自动下载到其本地配置文件桌面。当然,每个用户配置文件都是不同的,因此链接表必须知道更改人员配置文件名称:"C:\Users\"和Environ("用户名"(和"\Desktop\Reports"。链接表管理器将不允许 Environ("用户名"(,因此它可能必须在 VBA 中完成。
用于更改指向 Excel 工作表的链接路径的代码。这需要已经建立了与工作表的链接,并且链接对象存在于数据库中。
Sub ChangeExcelLink()
Dim Tdf As DAO.TableDef
Dim Db As DAO.Database
Set Db = CurrentDb
Set Tdf = Db.TableDefs("link table name")
Tdf.Connect = "Excel 12.0;DATABASE=C:Users" & Environ("Username") & _
"DesktopReportsfilename.xlsx;HDR=NO"
Tdf.RefreshLink
Set Tdf = Nothing
Set Db = Nothing
End Sub
如果工作表包含要保留的列标题,请将HDR=No
更改为HDR=Yes
或删除该参数,因为"是"是默认值。如果数据库需要密码,请使用 ;PWD=yourpassword
。