我正在使用我们最近更新为使用链接表/SQL Server 后端的旧版 Microsoft Access 数据库。
我正在对数据结构进行一些更改,并希望以编程方式更新链接表引用。
但是,使用我正在使用的代码,在完成我期望刷新链接表的操作后,我没有获得特定表的更新数据类型。现在数据类型是文本,但如果我使用外部数据 > 链接表管理器并完成该过程,它们会更新为日期/时间。
(我想要一个可以在开发和生产之间切换的功能,所以我不认为上述路线是一种选择。)
Access/VB 不再是我最擅长的技能,但从 MSDN(this和this)看来,这似乎tb.Fields.Refresh
是必需的,但它并没有像我预期的那样工作。
我究竟做错了什么?
Function RefreshLinkedTables() As Boolean
Dim db As DAO.Database
Dim tb As DAO.TableDef
Dim fld As DAO.Field
Set db = CurrentDb
For Each tb In db.TableDefs
' Skip system files.
If (Mid(tb.Name, 1, 4) <> "MSys" And Mid(tb.Name, 1, 4) <> "~TMP") Then
Debug.Print tb.Name
Debug.Print tb.Connect
If (Mid(tb.Connect, 1, 5) = "ODBC;") Then
tb.RefreshLink
If (tb.Name = "Jobs") Then
Debug.Print "Refreshing fields data"
tb.Fields.Refresh
End If
End If
Debug.Print "=== === ==="
End If
db.TableDefs.Refresh
Next
Set db = Nothing
RefreshLinkedTables = True
Exit Function
End Function