logo UsualSoft   Skip Navigation Links
Accueil
Références
Formations
TutorielsExpand Tutoriels
Liens téléchargements

Contact : cgruchet@usualsoft.fr - Tél: 02 38 34 99 88 / 06 22 82 90 55
Microsoft Certified Professional
 Cours : Visual-Basic

Bases de données 

TD : Le DataControl ADO

Claude Gruchet
Page précédente du TD

Début du TD3

Page suivante du TD

TD : Utilisation du contrôle DAO (2)

Voyons la suite de notre projet PTestDao ... ( Télécharger la première partie du projet )

Tout d'abord, nous allons permettre la création d'enregistrements, cela grâce à la propriété EofAction du contrôle Data qu'il faut positionner à "AddNew" à l'aide de la liste déroulante.

Vous pourrez, dès lors, a jouter des fiches en allant au "dernier enregistrement" (grâce au bouton du contrôle Data) puis, en cliquant sur le bouton "Enregistrement suivant". Vous obtiendrez alors une fiche vide dans laquelle il vous suffira de saisir un nom, une ville et un n° de téléphone pour créer la fiche. Tout comme pour une modification, la fiche sera crée lorsque vous changerez d'enregistrement ou fermerez le formulaire.

Commençons par ajouter les champs de la table Clients qui ne sont pas encore dans notre formulaire. Utilisez le procédé que nous avons vu à la fin de la première partie de ce TD. Vous devez obtenir le formulaire suivant : 

Utilisez les valeurs de propriétés suivantes :

  name DataSource DataField Text
Ligne 1 d'adresse txtAdr1 datCli Adr1 vide
Ligne 2 d'adresse txtAdr2 datCli Adr2 vide
Code postal txtCp datCli Cp vide

Nous allons ajouter 2 boutons à notre formulaire, un pour annuler les modifications saisies (en cas de besoin, puisque fermer le formulaire revient à sauver !), et un autre pour valider les modifications saisies. Nous ferons, ensuite, le nécessaire pour que, lors de la fermeture du formulaire, les modifications ne soient pas automatiquement sauvegardées.

Ajoutez trois boutons de commande afin que votre formulaire ait l'aspect suivant :

Vous utiliserez les propriétés suivantes pour vos boutons de commande :

  Name Caption ToolTipText
Bouton Annuler cmdCancel &Annuler Annuler les modifications
Bouton Valider cmdSave &Valider Enregistrer les modifications
Bouton Fermer cmdClose &Fermer Fermer le formulaire

Notez l'utilisation de l'esperluette (&) pour créer des raccourcis clavier utilisables avec la touche Alt conjointement     avec la touche de la lettre qui suit l'esperluette dans le libellé (ce n'est pas forcément la première lettre). Par exemple, il faudra utiliser <Alt A> pour activer l'événement Click du bouton cmdCancel (Annuler).

Appelez le module de code source (par exemple en double cliquant sur l'un des boutons ce qui génèrera le prototype de la fonction gérant l'évènement Click de ce bouton).

Saisissez le code suivant pour les trois boutons qui nous intéressent :

Option Explicit
Option Compare Text

'---------------------------------
Private Sub cmdCancel_Click()
'---------------------------------
   Me.datCli.UpdateControls
End Sub

'---------------------------------
Private Sub cmdClose_Click()
'---------------------------------
   Me.datCli.UpdateControls
   Unload Me
End Sub

'---------------------------------
Private Sub cmdSave_Click()
'---------------------------------
   Me.datCli.UpdateRecord
End Sub


Notez l'utilisation des méthodes UpdateControls et UpdateRecord du Data contrôle DAO. L'action de ces méthodes est la suivante :

 

UpdateControls 

Transfère le contenu des champs de l'enregistrement courant vers les contrôles liés en fonction de la valeur de la propriété DataField du contrôle lié.

UpdateRecord 

Transfère le contenu des contrôles liés vers les champs de l'enregistrement courant en fonction de la valeur de la propriété DataField du contrôle lié.

Vous remarquerez que nous appelons la méthode UpdateControls avant la fermeture du formulaire. Ceci car nous désirons que l'enregistrement dans la base de données soit une action volontaire de l'utilisateur (click sur le bouton valider). Le code source que nous avons écrit annule les éventuelles modifications avant la fermeture du formulaire ce qui empêche la validation involontaire de données.

Il serait tout de même plus convivial de détecter d'éventuelles modifications puis, de demander à l'utilisateur s'il veut les valider ou non. Ceci pourra être réalisé à l'aide de la propriété DataChanged des contrôles liés et de la fonction MsgBox de Visual basic.


Page précédente du TD

Début du TD3

Page suivante du TD