Partager via


Fields.Refresh, méthode (DAO)

S’applique à : Access 2013, Office 2013

Met à jour les objets dans la collection spécifiée pour refléter le schéma actuel de la base de données.

Syntaxe

expression . Actualiser

expression Variable qui représente un objet Fields.

Remarques

Pour déterminer la position utilisée par le moteur de base de données Microsoft Access pour les objets Field dans la collection Fields d'un objet QueryDef, Recordset ou TableDef, utilisez la propriété OrdinalPosition de chaque objet Field. La modification de la propriété OrdinalPosition d'un objet Field ne peut pas modifier l'ordre des objets Field dans la collection tant que vous n'utilisez pas la méthode Refresh.

Utilisez la méthode Refresh dans les environnements multi-utilisateurs dans lesquels les autres utilisateurs peuvent modifier la base de données. Vous avez peut-être besoin également de l'utiliser dans des collections concernées indirectement par les modifications apportées à la base de données. Par exemple, si vous modifiez une collection Users, il est peut-être nécessaire d'actualiser une collection Groups avant d'utiliser cette collection Groups.

Une collection est remplie d'objets lors de son premier référencement et ne reflète pas automatiquement les modifications que les autres utilisateurs apportent par la suite. Si vous pensez qu'une collection a pu être modifiée, appelez la méthode Refresh sur la collection juste avant d'effectuer, dans votre application, une tâche quelconque qui exige la présence ou l'absence d'un objet particulier de la collection. De cette façon, vous êtes assuré que la collection est aussi à jour que possible. En revanche, il faut savoir que l'utilisation de Refresh peut ralentir inutilement les performances.

Exemple

Dans cet exemple, la méthode Refresh est utilisée pour mettre à jour la collection Fields de la table Catégories à l'aide des modifications des données OrdinalPosition. L'ordre de la collection Fields ne change qu'après utilisation de la méthode Refresh.

    Sub RefreshX() 
     
     Dim dbsNorthwind As Database 
     Dim tdfEmployees As TableDef 
     Dim aintPosition() As Integer 
     Dim astrFieldName() As String 
     Dim intTemp As Integer 
     Dim fldLoop As Field 
     
     Set dbsNorthwind = OpenDatabase("Northwind.mdb") 
     Set tdfEmployees = dbsNorthwind.TableDefs("Categories") 
     
     With tdfEmployees 
     ' Display original OrdinalPosition data and store it 
     ' in an array. 
     Debug.Print _ 
     "Original OrdinalPosition data in TableDef." 
     ReDim aintPosition(0 To .Fields.Count - 1) As Integer 
     ReDim astrFieldName(0 To .Fields.Count - 1) As String 
     For intTemp = 0 To .Fields.Count - 1 
     aintPosition(intTemp) = _ 
     .Fields(intTemp).OrdinalPosition 
     astrFieldName(intTemp) = .Fields(intTemp).Name 
     Debug.Print , aintPosition(intTemp), _ 
     astrFieldName(intTemp) 
     Next intTemp 
     
     ' Change OrdinalPosition data. 
     For Each fldLoop In .Fields 
     fldLoop.OrdinalPosition = _ 
     100 - fldLoop.OrdinalPosition 
     Next fldLoop 
     Set fldLoop = Nothing 
     
     ' Print new data. 
     Debug.Print "New OrdinalPosition data before Refresh." 
     For Each fldLoop In .Fields 
     Debug.Print , fldLoop.OrdinalPosition, fldLoop.Name 
     Next fldLoop 
     
     .Fields.Refresh 
     
     ' Print new data, showing how the field order has been 
     ' changed. 
     Debug.Print "New OrdinalPosition data after Refresh." 
     For Each fldLoop In .Fields 
     Debug.Print , fldLoop.OrdinalPosition, fldLoop.Name 
     Next fldLoop 
     
     ' Restore original OrdinalPosition data. 
     For intTemp = 0 To .Fields.Count - 1 
     .Fields(astrFieldName(intTemp)).OrdinalPosition = _ 
     aintPosition(intTemp) 
     Next intTemp 
     End With 
     
     dbsNorthwind.Close 
     
    End Sub