Lors de la liaison à une source de données externe via ODBC (en particulier un AS/400), je rencontre souvent des noms de champs cryptiques de l'autre côté, où aucun dictionnaire de données n'est disponible. Dans les rares cas où je pourrais obtenir les descriptions de champs de l'autre base de données, j'aimerais pouvoir les importer toutes en même temps, plutôt que de copier/coller chaque description dans le formulaire de conception de table, une à la fois.Comment renseigner les descriptions de champs dans MS Access
Je n'ai pas réussi à trouver cela dans les tables système, donc je ne sais pas où cette métadonnée est stockée. Des idées sur où il est, et si elle peut être mise à jour par lots?
Mise à jour: j'ai réussi à lire le schéma en utilisant la méthode OpenSchema (voir le code ci-dessous), mais cela retourne un ensemble de données en lecture seule, ce qui m'empêche de mettre à jour les descriptions.
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
Ce ne fonctionne pas - l'appel OpenSchema retourne un jeu vide d'enregistrements. Je reçois rs.EOF immédiatement. Cela est peut-être dû au fait que ma table est liée à une source de données ODBC. Mais les propriétés de description de table et de champ sont toujours stockées localement dans Access db, donc elles doivent être quelque part ... –
J'ai réussi à récupérer des données d'OpenSchema en laissant le champ de critère vide. Je peux lire les descriptions des colonnes maintenant. Toutefois, la méthode OpenSchema renvoie un jeu d'enregistrements statique en lecture seule, donc je ne peux pas mettre à jour la description. Des idées pour obtenir des mises à jour dans le schéma? –