Partager via


Open, méthode (Recordset ADO)

S’applique à : Access 2013, Office 2013

Ouvre un curseur.

Syntaxe

recordset. OpenSource, ActiveConnection, CursorType, LockType, Options

Paramètres

Paramètre Description
Source Facultatif. Valeur de type Variant qui représente un objet Command, une instruction SQL, un nom de table, un appel de procédure stockée, une URL ou le nom d'un fichier ou objet Stream contenant un objet Recordset stocké de façon permanente.
ActiveConnection Facultatif. Valeur de type Variant qui représente un nom de variable objet Connection valide ou valeur de type String qui contient les paramètres de la propriété ConnectionString.
CursorType Facultatif. Valeur CursorTypeEnum déterminant le type de curseur que le fournisseur doit utiliser pour ouvrir l'objet Recordset. La valeur par défaut est adOpenForwardOnly.
LockType Facultatif. Valeur LockTypeEnum déterminant le type de verrouillage (accès concurrentiel) que le fournisseur doit utiliser pour ouvrir l'objet Recordset. La valeur par défaut est adLockReadOnly.
Options Optional. Valeur de type Long spécifiant comment le fournisseur doit retourner l’argument Source s’il représente autre chose qu’un objet Command ou indiquant que l’objet Recordset doit être restauré à partir d’un fichier dans lequel il a été précédemment enregistré. Il peut représenter une ou plusieurs valeurs CommandTypeEnum ou ExecuteOptionEnum, lesquelles peuvent être combinées avec un opérateur de bits AND.

Notes

[!REMARQUE] Si vous ouvrez un objet Recordset à partir d'un objet Stream contenant un objet Recordset persistant, l'utilisation d'une valeur ExecuteOptionEnumadAsyncFetchNonBlocking n'aura aucune incidence ; l'extraction sera synchrone et bloquante.

Les valeurs adExecuteNoRecords ou adExecuteStream de ExecuteOpenEnum ne doivent pas être utilisées avec Open.

Remarques

Le curseur par défaut d'un objet Recordset ADO est un curseur en lecture seule, avant uniquement et situé sur le serveur.

L'utilisation de la méthode Open sur un objet Recordset ouvre un curseur qui représente des enregistrements d'une table de base, les résultats d'une requête ou un objet Recordset précédemment enregistré.

Utilisez l'argument Source facultatif pour spécifier une source de données à l'aide d'un des éléments suivants : variable objet Command, instruction SQL, procédure stockée, nom de table, URL ou nom de chemin d'accès complet d'un fichier. Si Source est un nom de chemin de fichier, il peut s’agir d’un chemin d’accès complet (« c :\dir\file.rst »), d’un chemin d’accès relatif (« .. \file.rst « ), ou une URL («https://files/file.rst" ;).

Il est déconseillé d’utiliser l’argument Source de la méthode Open pour exécuter une requête Action qui ne retourne pas d’enregistrement car il est toujours difficile de déterminer si l’appel a réussi ou échoué. L’objet Recordset retourné par ce type de requête sera fermé. Appelez plutôt la méthode Execute d'un objet Command ou la méthode Execute d'un objet Connection pour exécuter une requête qui ne retourne pas d'enregistrement, comme une instruction INSERT SQL.

L’argument ConnexionActive correspond à la propriété ActiveConnection et spécifie la connexion dans laquelle ouvrir l’objet Recordset. Si vous transférez une définition de connexion pour cet argument, ADO ouvre une nouvelle connexion à l'aide des paramètres spécifiés. Après avoir ouvert l’objet Recordset avec un curseur côté client (CursorLocation = adUseClient), vous pouvez modifier la valeur de cette propriété pour envoyer des mises à jour à un autre fournisseur. Vous pouvez également attribuer la valeur Nothing (en Microsoft Visual Basic) ou NULL à cette propriété pour déconnecter l'objet Recordset de tous les fournisseurs. La modification de ConnexionActive pour un curseur côté serveur génère, en revanche, une erreur.

En ce qui concerne les autres arguments correspondant directement aux propriétés d'un objet Recordset (Source, TypeCurseur et TypeVerrou), la relation entre les arguments et les propriétés est la suivante :

  • La propriété est en lecture/écriture avant l'ouverture de l'objet Recordset.
  • Les paramètres de propriété sont utilisés sauf si vous passez les arguments correspondants lors de l'exécution de la méthode Open. Si vous passez un argument, il remplace le paramètre de propriété correspondant et le paramètre de la propriété est mis à jour avec la valeur de l'argument.
  • Une fois l'objet Recordset ouvert, ces propriétés sont alors en lecture seule.

Notes

[!REMARQUE] La propriété ActiveConnection est lue uniquement pour les objets Recordset dont la propriété Source a pour valeur un objet Command valide même si l'objet Recordset n'est pas ouvert.

Si vous passez un objet Command dans l'argument Source et que vous passez aussi un argument ConnexionActive, une erreur se produit. La propriété ActiveConnection de l'objet Command doit déjà avoir pour valeur un objet Connection ou une chaîne de connexion valide.

Si vous passez un autre élément qu'un objet Command dans l'argument Source, vous pouvez utiliser l'argument Options pour optimiser l'évaluation de l'argument Source. Si l'argument Options n'est pas défini, il se peut que les performances diminuent car ADO doit passer des appels au fournisseur afin de déterminer si l'argument est une instruction SQL, une procédure stockée ou un nom de table. SI vous connaissez le type d'argument Source utilisé, la définition de l'argument Options permet à ADO d'accéder directement au code approprié. Si l'argument Options ne correspond pas au type de l'argument Source, une erreur se produit.

Si vous passez un objet Stream dans l'argument Source, ne passez pas d'informations dans les autres arguments. Si vous le faites, une erreur sera générée. Les informations du paramètre ConnexionActive ne sont pas conservées lorsqu'un objet Recordset est ouvert à partir d'un objet Stream.

La valeur par défaut de l'argument Options est adCmdFile si aucune connexion n'est associée à l'objet Recordset. C'est généralement le cas des objets Recordset stockés de façon permanente.

Si la source de données ne retourne aucun enregistrement, le fournisseur affecte aux propriétés BOF et EOF la valeur True et la position d'enregistrement actif n'est pas définie. Vous pouvez néanmoins ajouter de nouvelles données à cet objet Recordset vide si le type de curseur le permet.

Lorsque vous avez terminé les opérations relatives à un objet Recordset ouvert, utilisez la méthode Close pour libérer les ressources système associées. La fermeture d’un objet ne le supprime pas de la mémoire ; vous pouvez modifier les paramètres de ses propriétés et utiliser la méthode Open pour le rouvrir ultérieurement. Pour éliminer définitivement un objet de la mémoire, attribuez à la variable objet la valeur Nothing.

Avant de définir la propriété ActiveConnection, appelez la méthode Open sans opérande pour créer une instance d'un objet Recordset créée par l'ajout de champs à la collection Fields de l'objet Recordset.

Si vous avez attribué à la propriété CursorLocation la valeur adUseClient, vous disposez de deux possibilités pour récupérer des lignes de façon asynchrone. La méthode recommandée consiste à attribuer à Options la valeur adAsyncFetch. Vous pouvez, par ailleurs, utiliser la propriété dynamique « Asynchronous Rowset Processing » dans la collection Properties mais il se peut que vous perdiez des événements récupérés si vous n'attribuez pas au paramètre Options la valeur adAsyncFetch.

Notes

L'extraction en arrière-plan dans le fournisseur distant Microsoft est pris en charge uniquement par le paramètre Options de la méthode Open.

Notes

Les URL qui utilisent le schéma http appellent automatiquement le fournisseur Microsoft OLE DB pour la publication Internet. Pour plus d’informations, consultez URL absolues et relatives.