私はMS Accessでリンクテーブルを追加するプロセスを自動化しようとしています。vbaで一意のレコード識別子を動的に選択していますか?
私は、リンクテーブルを追加するなど、これまでに動作するように
' 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があり、アクセスがそれを無視していますか?またはPKが全くありませんか? – Brad
いいえ、本当に古いデータベースです。 – leeand00
'Mid $(CreateObject(" Scriptlet.TypeLib ")。GUID、2,36)'がGUIDとして返されます。 – Jeeped