ODBC (特に AS/400) 経由で外部データ ソースにリンクするとき、データ ディクショナリが利用できない反対側で不可解なフィールド名に出くわすことがよくあります。他のデータベースからフィールドの説明を取得できるというまれなイベントでは、各説明を一度に 1 つずつテーブル デザイン フォームにコピー/貼り付けするのではなく、一度にすべてインポートできるようにしたいと考えています。
システム テーブルでこれを見つけることができなかったので、このメタデータがどこに保存されているかわかりません。それがどこにあり、バッチで更新できるかどうかについてのアイデアはありますか?
更新: OpenSchema メソッド (以下のコードを参照) を使用してスキーマを読み取ることができましたが、これは読み取り専用のデータセットを返すため、説明を更新することができません。
Function UpdateFieldDescriptions()
Dim cn As New ADODB.Connection
Dim rs As ADODB.Recordset
Dim rs2 As Recordset
Dim strSQL As String
Dim strDesc As String
Set cn = CurrentProject.Connection
Set rs = cn.OpenSchema(adSchemaColumns)
While Not rs.EOF
If Left(rs!table_name, 4) <> "MSys" Then
Debug.Print rs!table_name, rs!column_name, rs!Description
strSQL = "SELECT Description " & _
"FROM tblColumnDescriptions a " & _
"WHERE a.Name = """ & rs!table_name & """ AND " & _
"a.Column = """ & rs!column_name & """;"
Set rs2 = CurrentDb.OpenRecordset(strSQL)
While Not rs2.EOF
strDesc = rs2.Fields(0)
rs!Description = strDesc ' <---This generates an error
Wend
End If
rs.MoveNext
Wend
rs.Update
rs.Close
Set rs = Nothing
Set rs2 = Nothing
Set cn = Nothing
End Function