【发布时间】:2016-07-07 20:33:42
【问题描述】:
我正在尝试自动化在 MS Access 中添加链接表的过程。
就添加链接表而言,我已经让它工作了,
' RUN ME
Sub testItOut()
Dim loginInfo As New AuthInfoz
loginInfo.workgroup = "E:\xxxdatas\SEC\Secured.mdw"
loginInfo.username = "XXXXX"
loginInfo.password = "XXXX"
loginInfo.dbs = "E:\xxxdatas\username\Report.mdb"
Call DeleteRelinkToViewAndRename(loginInfo, "sometable", "ServiceProvision_Schema.hrpersnl")
End Sub
' Deletes the old table and relinks it
' to the new schema
Sub DeleteRelinkToViewAndRename(loginInfo As AuthInfoz, tblName, tblTarget)
Dim objAccess As Access.application
Dim view_ucp_consumers2_qf As DAO.QueryDef
' Open the thing manually first...
'Shell """C:\Program Files (x86)\Microsoft Office\Office12\MSACCESS.EXE""" & " " & loginInfo.dbs
Set objAccess = GetObject(loginInfo.dbs).application
objAccess.CurrentDb
' Delete the Linked Table...THIS WORKS UNCOMMENT LATER...
objAccess.DoCmd.DeleteObject acTable, tblName
' Relink the old table to the new schema
' THIS IS WHERE THE DIALOG APPEARS
objAccess.DoCmd.TransferDatabase _
acLink, _
"ODBC Database", _
"ODBC;DSN=MEDSN;Database=MEDATABASE;Trusted_Connection=Yes", _
acTable, _
tblTarget, _
tblName
' Close out...
objAccess.Quit acQuitSaveAll
End Sub
...但随后会弹出一个对话框,请求主键或称为唯一记录标识符。反正有这个吗?
【问题讨论】:
-
tblTarget是否有 PK 并且 Access 会忽略它?还是根本没有PK? -
不是很老的数据库。
-
Mid$(CreateObject("Scriptlet.TypeLib").GUID, 2, 36)作为 GUID 返回。 -
@Jeeped 该 GUID 指向什么?
-
这是一个新的 GUID,可用作唯一标识符。它没有指向任何东西。
标签: vba ms-access ms-access-2013 linked-tables