リンク テーブル/SQL Server バックエンドを使用するように最近更新した従来の Microsoft Access データベースを使用しています。
データの構造にいくつかの変更を加えており、リンクされたテーブル参照をプログラムで更新したいと考えています。
ただし、私が使用しているコードでは、リンクされたテーブルを更新すると予想されることを行った後、特定のテーブルのデータ型が更新されません。現在、データ型はテキストですが、[外部データ] > [リンク テーブル マネージャー] を使用してそのプロセスを実行すると、日付/時刻に更新されます。
(開発と本番を切り替える機能を持ちたいので、上記のルートはオプションとは考えていません。)
アクセス/VB はもはや私の最強のスキルではありませんが、MSDN (これとこれ) からは必須のよう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