1

リンク テーブル/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
4

1 に答える 1