Share via


CDaoRecordView, classe

Vue qui affiche des enregistrements de base de données dans des contrôles.

Syntaxe

class AFX_NOVTABLE CDaoRecordView : public CFormView

Membres

Constructeurs protégés

Nom Description
CDaoRecordView ::CDaoRecordView Construit un objet CDaoRecordView.

Méthodes publiques

Nom Description
CDaoRecordView ::IsOnFirstRecord Retourne une valeur différente de zéro si l’enregistrement actif est le premier enregistrement du jeu d’enregistrements associé.
CDaoRecordView ::IsOnLastRecord Retourne une valeur différente de zéro si l’enregistrement actif est le dernier enregistrement dans le jeu d’enregistrements associé.
CDaoRecordView ::OnGetRecordset Retourne un pointeur vers un objet d’une classe dérivée de CDaoRecordset. ClassWizard remplace cette fonction pour vous et crée le jeu d’enregistrements si nécessaire.
CDaoRecordView ::OnMove Si l’enregistrement actif a changé, le met à jour sur la source de données, puis passe à l’enregistrement spécifié (suivant, précédent, premier ou dernier).

Notes

La vue est une vue de formulaire directement connectée à un CDaoRecordset objet. La vue est créée à partir d’une ressource de modèle de dialogue et affiche les champs de l’objet CDaoRecordset dans les contrôles du modèle de dialogue. L’objet CDaoRecordView utilise l’échange de données de dialogue (DDX) et l’échange de champs d’enregistrement DAO (DFX) pour automatiser le déplacement des données entre les contrôles du formulaire et les champs du jeu d’enregistrements. CDaoRecordView fournit également une implémentation par défaut pour passer au premier, suivant, précédent ou dernier enregistrement et une interface pour la mise à jour de l’enregistrement actuellement en vue.

Remarque

Les classes de base de données DAO sont distinctes des classes de base de données MFC basées sur Open Database Connecter ivity (ODBC). Tous les noms de classes de base de données DAO ont le préfixe « CDao ». Vous pouvez toujours accéder aux sources de données ODBC avec les classes DAO ; les classes DAO offrent généralement des fonctionnalités supérieures, car elles utilisent le moteur de base de données Microsoft Jet.

La façon la plus courante de créer votre vue d’enregistrement consiste à utiliser l’Assistant Application. L’Assistant Application crée à la fois la classe d’affichage d’enregistrements et sa classe recordset associée dans le cadre de votre application de démarrage squelette.

Si vous avez simplement besoin d’un formulaire unique, l’approche de l’Assistant Application est plus facile. ClassWizard vous permet de décider d’utiliser une vue d’enregistrement ultérieurement dans le processus de développement. Si vous ne créez pas la classe d’affichage d’enregistrement avec l’Assistant Application, vous pouvez la créer ultérieurement avec ClassWizard. L’utilisation de ClassWizard pour créer une vue d’enregistrement et un jeu d’enregistrements séparément, puis les connecter est l’approche la plus flexible, car elle vous donne plus de contrôle pour nommer la classe recordset et son . H/. Fichiers CPP. Cette approche vous permet également d’avoir plusieurs vues d’enregistrement sur la même classe d’ensemble d’enregistrements.

Pour faciliter le passage de l’enregistrement à l’enregistrement des utilisateurs finaux dans l’affichage des enregistrements, l’Assistant Application crée des ressources de menu (et éventuellement de barre d’outils) pour passer au premier enregistrement, suivant, précédent ou dernier enregistrement. Si vous créez une classe d’affichage d’enregistrements avec ClassWizard, vous devez créer ces ressources vous-même avec les éditeurs de menu et bitmap.

Pour plus d’informations sur l’implémentation par défaut pour passer de l’enregistrement à l’enregistrement, consultez IsOnFirstRecord et IsOnLastRecord l’article Using a Record View, qui s’applique à la fois à la fois CRecordView à CDaoRecordView.

CDaoRecordView effectue le suivi de la position de l’utilisateur dans le jeu d’enregistrements afin que la vue des enregistrements puisse mettre à jour l’interface utilisateur. Lorsque l’utilisateur passe à la fin du jeu d’enregistrements, la vue d’enregistrement désactive les objets d’interface utilisateur ( tels que les éléments de menu ou les boutons de barre d’outils) pour se déplacer plus loin dans la même direction.

Pour plus d’informations sur la déclaration et l’utilisation des classes d’enregistrement et d’ensemble d’enregistrements, consultez « Conception et création d’un affichage d’enregistrement » dans l’article Vues d’enregistrement. Pour plus d’informations sur le fonctionnement des vues d’enregistrement et leur utilisation, consultez l’article Using a Record View. Tous les articles mentionnés ci-dessus s’appliquent aux deux CRecordView et CDaoRecordView.

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CView

CScrollView

CFormView

CDaoRecordView

Spécifications

En-tête : afxdao.h

CDaoRecordView ::CDaoRecordView

Lorsque vous créez un objet d’un type dérivé de CDaoRecordView, appelez l’une ou l’autre forme du constructeur pour initialiser l’objet d’affichage et identifier la ressource de boîte de dialogue sur laquelle la vue est basée.

explicit CDaoRecordView(LPCTSTR lpszTemplateName);
explicit CDaoRecordView(UINT nIDTemplate);

Paramètres

lpszTemplateName
Contient une chaîne terminée par null qui est le nom d’une ressource de modèle de boîte de dialogue.

nIDTemplate
Contient le numéro d’ID d’une ressource de modèle de boîte de dialogue.

Notes

Vous pouvez identifier la ressource par nom (passer une chaîne en tant qu’argument au constructeur) ou par son ID (passer un entier non signé comme argument). L’utilisation d’un ID de ressource est recommandée.

Remarque

Votre classe dérivée doit fournir son propre constructeur. Dans le constructeur de votre classe dérivée, appelez le constructeur CDaoRecordView::CDaoRecordView avec le nom de la ressource ou l’ID comme argument.

CDaoRecordView::OnInitialUpdate appels CWnd::UpdateData, qui appellent CWnd::DoDataExchange. Cet appel initial pour DoDataExchange connecter CDaoRecordView des contrôles (indirectement) aux CDaoRecordset membres de données de champ créés par ClassWizard. Ces membres de données ne peuvent pas être utilisés tant que vous n’avez pas appelé la fonction membre de classe CFormView::OnInitialUpdate de base.

Remarque

Si vous utilisez ClassWizard, l’Assistant définit une enum valeur CDaoRecordView::IDD dans la déclaration de classe et l’utilise dans la liste d’initialisation des membres pour le constructeur.

CMyDaoRecordView::CMyDaoRecordView()
    : CDaoRecordView(CMyDaoRecordView::IDD)
{
   m_pSet = NULL;
   // TODO: add construction code here
}

CDaoRecordView ::IsOnFirstRecord

Appelez cette fonction membre pour déterminer si l’enregistrement actif est le premier enregistrement de l’objet recordset associé à cette vue d’enregistrement.

BOOL IsOnFirstRecord();

Valeur de retour

Différent de zéro si l’enregistrement actif est le premier enregistrement dans le jeu d’enregistrements ; sinon 0.

Notes

Cette fonction est utile pour écrire vos propres implémentations des gestionnaires de mise à jour de commande par défaut écrits par ClassWizard.

Si l’utilisateur passe au premier enregistrement, l’infrastructure désactive tous les objets d’interface utilisateur (par exemple, les éléments de menu ou les boutons de barre d’outils) que vous devez déplacer vers le premier ou l’enregistrement précédent.

CDaoRecordView ::IsOnLastRecord

Appelez cette fonction membre pour déterminer si l’enregistrement actif est le dernier enregistrement de l’objet recordset associé à cette vue d’enregistrement.

BOOL IsOnLastRecord();

Valeur de retour

Différent de zéro si l’enregistrement actif est le dernier enregistrement dans le jeu d’enregistrements ; sinon 0.

Notes

Cette fonction est utile pour écrire vos propres implémentations des gestionnaires de mise à jour de commande par défaut que ClassWizard écrit pour prendre en charge une interface utilisateur pour passer de l’enregistrement à l’enregistrement.

Attention

Le résultat de cette fonction est fiable, sauf que la vue peut ne pas être en mesure de détecter la fin du jeu d’enregistrements tant que l’utilisateur ne l’a pas déplacé. L’utilisateur peut avoir à se déplacer au-delà du dernier enregistrement avant que l’affichage d’enregistrement puisse indiquer qu’il doit désactiver tous les objets d’interface utilisateur pour passer au dernier enregistrement ou suivant. Si l’utilisateur passe le dernier enregistrement, puis revient au dernier enregistrement (ou avant), la vue d’enregistrement peut suivre la position de l’utilisateur dans le jeu d’enregistrements et désactiver correctement les objets d’interface utilisateur.

CDaoRecordView ::OnGetRecordset

Retourne un pointeur vers l’objet CDaoRecordsetdérivé associé à la vue d’enregistrement.

virtual CDaoRecordset* OnGetRecordset() = 0;

Valeur de retour

Pointeur vers un CDaoRecordsetobjet dérivé si l’objet a été créé avec succès ; sinon, un pointeur NULL.

Notes

Vous devez remplacer cette fonction membre pour construire ou obtenir un objet recordset et renvoyer un pointeur vers celui-ci. Si vous déclarez votre classe d’affichage d’enregistrement avec ClassWizard, l’Assistant écrit un remplacement par défaut pour vous. L’implémentation par défaut de ClassWizard retourne le pointeur de jeu d’enregistrements stocké dans la vue d’enregistrement s’il en existe un. Si ce n’est pas le cas, il construit un objet recordset du type que vous avez spécifié avec ClassWizard et appelle sa Open fonction membre pour ouvrir la table ou exécuter la requête, puis retourne un pointeur vers l’objet.

Pour plus d’informations et d’exemples, consultez l’article Vues d’enregistrement : Utilisation d’un affichage d’enregistrement.

CDaoRecordView ::OnMove

Appelez cette fonction membre pour passer à un autre enregistrement dans le jeu d’enregistrements et afficher ses champs dans les contrôles de la vue d’enregistrement.

virtual BOOL OnMove(UINT nIDMoveCommand);

Paramètres

nIDMoveCommand
Une des valeurs d’ID de commande standard suivantes :

  • ID_RECORD_FIRST Passer au premier enregistrement du jeu d’enregistrements.

  • ID_RECORD_LAST Passer au dernier enregistrement dans le jeu d’enregistrements.

  • ID_RECORD_NEXT Passer à l’enregistrement suivant dans le jeu d’enregistrements.

  • ID_RECORD_PREV Déplacer vers l’enregistrement précédent dans le jeu d’enregistrements.

Valeur de retour

Différent de zéro si le déplacement a réussi ; sinon, 0 si la demande de déplacement a été refusée.

Notes

L’implémentation par défaut appelle la fonction membre Move appropriée de l’objet CDaoRecordset associé à la vue d’enregistrement.

Par défaut, OnMove met à jour l’enregistrement actif sur la source de données si l’utilisateur l’a modifié dans la vue d’enregistrement.

L’Assistant Application crée une ressource de menu avec les éléments de menu First Record, Last Record, Next Record et Previous Record. Si vous sélectionnez l’option Barre d’outils initiale, l’Assistant Application crée également une barre d’outils avec des boutons correspondant à ces commandes.

Si vous passez au-delà du dernier enregistrement dans le jeu d’enregistrements, la vue d’enregistrement continue d’afficher le dernier enregistrement. Si vous passez en arrière au-delà du premier enregistrement, la vue d’enregistrement continue d’afficher le premier enregistrement.

Attention

L’appel OnMove lève une exception si le jeu d’enregistrements n’a pas d’enregistrements. Appelez la fonction de gestionnaire de mise à jour de l’interface utilisateur appropriée ( OnUpdateRecordFirst, , OnUpdateRecordLastOnUpdateRecordNextou OnUpdateRecordPrev ) avant l’opération de déplacement correspondante pour déterminer si le jeu d’enregistrements a des enregistrements.

Voir aussi

CFormView, classe
Graphique hiérarchique
CDaoRecordset, classe
CDaoTableDef, classe
CDaoQueryDef, classe
CDaoDatabase, classe
CDaoWorkspace, classe
CFormView, classe