當通過ODBC(特別是AS/400)鏈接到外部數據源時,我經常在另一方遇到隱藏的字段名稱,而數據字典不可用。在極少數情況下,我能夠從其他數據庫獲取字段描述,我希望能夠一次導入它們,而不是每次將一個描述複製/粘貼到表格設計表單中。如何填充MS Access中的字段描述
我無法在系統表中找到它,所以我不知道這個元數據存儲在哪裏。有關它在哪裏的任何想法,以及它是否可以批量更新?
更新:我設法使用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
這是行不通的 - 的的OpenSchema調用返回一個空的記錄。我立即得到rs.EOF。 也許這是由於我的錶鏈接到ODBC數據源。但表和字段描述屬性仍然存儲在Access數據庫的本地,所以他們必須在某個地方... – 2009-06-19 15:21:08