La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Cours VB 2007/2008 1 Chapitre 6 Les Bases de Données en VB Intéraction avec les données dans une base de données Microsoft Jet/Microsoft Access Et gestion.

Présentations similaires


Présentation au sujet: "Cours VB 2007/2008 1 Chapitre 6 Les Bases de Données en VB Intéraction avec les données dans une base de données Microsoft Jet/Microsoft Access Et gestion."— Transcription de la présentation:

1 Cours VB 2007/ Chapitre 6 Les Bases de Données en VB Intéraction avec les données dans une base de données Microsoft Jet/Microsoft Access Et gestion des enregistrements

2 2 Cours VB – ISG 2007/2008 Le modèle ADO Modèle ADO ActiveX Data Object Modèle DAO Data Access Object Lobjet Connection La collection Errors Lobjet RecordSet Lobjet Commmand Le modèle ADO est une bibliothèque dinstructions qui permet de gérer de nombreux paramètres pour se connecter et de manipuler des sources de données. DataEnvironment se base sur lutilisation du modèle ADO mais offre plus de possibilités (exemple: possibilité de faire plusieurs connections)

3 Cours VB 2007/ Objet Connection

4 4 Cours VB – ISG 2007/2008 Lobjet Connection Lobjet Connection est utilisé pour établir une connexion avec une source de données : par exemple une base de données Access ou une base orientée Client-Serveur de type SQL Server ou Oracle. Différents paramètres peuvent être indiqués à lobjet Connection : Le fournisseur de données Le nom utilisateur Le mot de passe Les autorisations daccès

5 5 Cours VB – ISG 2007/2008 Création d'une connexion à un fichier de BD Access (1) Lorsque vous travaillez avec les données d'une base Microsoft Access, vous devez commencer par créer une connexion vers un fichier de base de données Microsoft Jet/Microsoft Access : 1. Ajoutez à votre projet un concepteur Data Environment (Ajouter Data Environnement dans Plus de connexion Activex dans le menu Projet.) ou ouvrir un projet de données (ProjetData). 2. Remarque : Si le concepteur d'environnement de données n'est pas disponible dans le menu Projet, ajoutez-le à votre environnement Visual Basic. Cliquez sur Composants dans le menu Projet, cliquez sur l'onglet Concepteurs, puis activez la case à cocher correspondant à son nom dans la liste des concepteurs.

6 6 Cours VB – ISG 2007/2008 Création d'une connexion à un fichier de BD Access (2) 2. Définissez les propriétés de connexion pour le concepteur. cliquez à l'aide du bouton droit de la souris sur l'objet Connection dans votre concepteur Data Environment, puis choisissez Propriétés depuis le menu contextuel : Sélectionnez un fournisseur JET 4.0 OLE DB sur l'onglet Fournisseur de la boîte de dialogue. Puis cliquez sur Suivant et entrez le chemin d'accès au fichier de la base de données Remarque Vous pouvez définir les propriétés supplémentaires de connexion en cliquant sur les onglets Paramètres avancés ouTous, ou tester la connexion en cliquant sur Tester la connexion.

7 7 Cours VB – ISG 2007/2008 Recap BD Access Projet VB 1 ou ++ Data Environnement JET 4.0 OLE DB

8 Cours VB 2007/ Objets commandes Objets Recordset

9 9 Cours VB – ISG 2007/2008 Lobjet Command Dans la hiérarchie ADO lobjet Command se place après lobjet Connection et détermine le type de tables ou les requêtes SQL qui interpelleront les tables. En fonction des différents fournisseurs de données ces paramètres peuvent varier : Table Vue Texte dune requête SQL Relation Regroupement Type de position du curseur Type de verouillage..

10 10 Cours VB – ISG 2007/2008 Création d'un objet Command d'environnement de données Une fois créée la connexion à votre BD, vous pouvez utiliser le concepteur Data Environment pour créer les objets Command qui vous donneront accès aux données. Par exemple, vous pouvez créer un objet Command simple qui vous donne accès aux données d'une table et un autre objet Command, plus complexe, basé sur une requête. Pour créer un objet Command d'environnement de données simple: 1.Ouvrez un concepteur Data Environment 2.Créez l'objet Command Data Environment bouton droit sur la connexion Ajouter une commande bouton droit sur l'objet Command Propriétés spécifier le nom de l'objet Command, la connexion qu'il utilise et la source de ses données dans la boîte de dialogue Propriétés de Command.

11 11 Cours VB – ISG 2007/2008 Objet commande basée sur une table Par exemple, pour créer un objet Command basé sur la table Clients de la base Les comptoirs, définissez les propriétés suivantes :

12 12 Cours VB – ISG 2007/2008 Objet commande basée sur une requête Ouvrir un concepteur Data Environment existant ou en créer un nouveau. Créez l'objet Command mais au lieu de sélectionner un objet base de données spécifique comme base de la commande, sélectionnez comme source de la commande Instruction SQL. Ensuite, cliquez sur le bouton Générateur SQL pour ouvrir le Concepteur de requêtes dans lequel vous spécifiez les tables, les champs et les critères de la requête.

13 13 Cours VB – ISG 2007/2008 Exemple – Client français Créez une requête qui retourne des informations sur les clients français 1.Glisser la table Client de la fenêtre Fenêtre Données (disponible dans le menu Affichage) 2.Cliquez sur la case à cocher à côté des champs que vous voulez inclure dans la requête. 3.Spécifiez les critères de la requête en entrant « France » dans la case Critère du champ Pays dans la grille du Concepteur de requêtes. Lorsque vous spécifiez les champs et les critères, le Concepteur de requêtes crée automatiquement l'instruction SQL sous-jacente de la requête Pour afficher les résultats de la requête, cliquez avec le bouton droit de la souris sur le Concepteur de requêtes et sélectionnez exécuter. Le Concepteur de requêtes affiche le résultat produit.

14 14 Cours VB – ISG 2007/2008 Exemple – Client français SELECT Adresse, `Code client`, `Code postal`, Contact, Fax, Fonction, Région, Société, Téléphone, Ville FROM Clients WHERE (Pays = 'france')

15 15 Cours VB – ISG 2007/2008 Exemple – Commandes des Client français Exemple: Créez une requête qui retourne des informations sur les commandes des clients français 1. Glisser les tables Clients et Commandes 2. Cliquez sur la case à cocher à côté des champs que vous voulez inclure dans la requête. 3. Spécifiez les critères de la requête en entrant « France » dans la case Critère du champ Pays dans la grille du Concepteur de requêtes.

16 16 Cours VB – ISG 2007/2008 Exemple – Commandes des Client français Pour créer une grille de données qui affiche les commandes des clients français: 1.Sélectionnez l'objet Command ClientsFrancais. 2.Glissez l'objet Command vers une feuille vide à l'aide du bouton droit de la souris: Visual Basic affiche un menu contextuel dans lequel vous choisissez de créer une grille de données (DataGrid) ou un contrôle dépendant. Lorsque vous sélectionnez DataGrid, Visual Basic crée automatiquement une grille de données qui affiche les enregistrements du jeu d'enregistrements de la commande. Lorsque vous exécutez la feuille, Visual Basic affiche les enregistrements retournés par l'objet Command ClientsFrancais dans une grille de données.

17 17 Cours VB – ISG 2007/2008 Lobjet Recordset (1) A chaque objet Command est associé un objet Recordset qui représente les enregistrements retournés par ce dernier L'objet Recordset utilise le même nom que l'objet Command mais lui ajoute un préfixe «rs» (Recordset). Exemple: lorsque le concepteur d'environnement de données crée la commande TableClients, il crée aussi un objet Records et nommé "rsTableClients." Chaque ligne dun objet Recordset comprend un ou plusieurs champs représentant un ou plusieurs objet Field.

18 18 Cours VB – ISG 2007/2008 Lobjet Recordset (2) Le Recordset se base sur l utilisation de quatre types de curseurs définis dans ADO : Curseur dynamique (=2): permet de visualiser les ajouts, les modifications et les suppressions effectués par d'autres utilisateurs. Il permet également tout type de déplacement ne nécessitant pas l'utilisation de signets dans l'objet Recordset. Ce type de curseur permet l'utilisation de signets si le fournisseur est en mesure de les prendre en charge. Curseur à jeu de clés (=1) : son fonctionnement est identique à celui d'un curseur dynamique mais il ne permet pas de visualiser les enregistrements ajoutés par d'autres utilisateurs ou d'accéder aux enregistrements qu'ils ont supprimés. Les modifications effectuées sur les données par les autres utilisateurs sont néanmoins visibles. Ce type de curseur prend toujours en charge les signets et il permet donc tout type de déplacement dans l'objet Recordset.

19 19 Cours VB – ISG 2007/2008 Lobjet Recordset (3) Curseur statique (=3) : fournit une copie statique d'un jeu d'enregistrements que vous pouvez utiliser pour rechercher des données ou créer des rapports. Il permet l'utilisation de signets et rend donc possible tout type de déplacement dans l'objet Recordset. Les ajouts, modifications et suppressions effectués par d'autres utilisateurs ne sont pas visibles. Ce type de curseur est le seul autorisé si vous ouvrez un objet Recordset côté client. Curseur à défilement en avant (=0) : son fonctionnement est identique à celui d'un curseur dynamique, mais vous pouvez uniquement parcourir les enregistrements vers l'avant. Ce type de curseur permet d'obtenir de meilleures performances lorsque vous devez parcourir une seule fois un objet Recordset.

20 20 Cours VB – ISG 2007/2008 Lobjet Recordset (4) Important : Vous pouvez faire référence à l'objet Command dans le code comme à une commande du Data Environment, et faire référence à son jeu d'enregistrements comme à une propriété du Data Environment. Exemple: si vous créez la commande TableClients dans un DataEnvironment nommé DataEnvironment1, vous pouvez faire référence à la commande dans le code de la façon suivante : DataEnvironment1.TableClients Vous pouvez faire référence au jeu d'enregistrements sous-jacent de l'objet Command de la façon suivante : DataEnvironment1.rsTableClients

21 21 Cours VB – ISG 2007/2008 Recap BD Access Projet VB 1 ou ++ Data Environnement JET 4.0 OLE DB Objet commandRecordSet Objet commandRecordSet......

22 Cours VB 2007/ Création d'une feuille dépendante des données simple

23 23 Cours VB – ISG 2007/2008 Création d'une feuille dépendante des données simple(1) Glissez un objet Command (basé sur une table ou une requête) du concepteur Data Environment vers une feuille vide. Visual Basic créée automatiquement des contrôles TexBox pour afficher les données à partir du Recordset de l'objet Command et définit des propriétés de données qui lient les contrôles aux champs du Recordset. On dit, il crée des champs dépendants

24 24 Cours VB – ISG 2007/2008 Création d'une feuille dépendante des données simple(2) Si vous regardez dans les propriétés de ces différents champs, dans la catégorie "Données" vous remarquerez 3 propriétés intéressantes qui sont: Datasource Datamember Et datafield Dans l'exemple de la Table Clients, les 2 premiers champs ont les valeurs suivantes: Datasource = DataEnvironment1 DataMember = TableClients Puis, pour chaque champ de saisie, la propriété Datafield va variée et prendre le nom du champ auquel il est lié. Exemple: Pour le champ 'tctCodeClient' la propriété Datafield = 'Code Client'

25 25 Cours VB – ISG 2007/2008 Création d'une feuille dépendante des données simple(3)

26 26 Cours VB – ISG 2007/2008 Création d'une feuille dépendante des données simple (4) Remarque: Si une feuille contient des contrôles dépendants alors si on modifie la valeur dun champ puis on navigue dans les enregistrements alors cest comme si on a fait update Deux solutions sont possibles: bloquer les zones textes dépendantes (locked=true) et ajouter un bouton modifier ne pas utiliser les contrôles dépendants et utiliser les fields avant le update

27 27 Cours VB – ISG 2007/2008 Ouverture des recordsets Il faut lors du chargement de la feuille ouvrir les objets commandes concernés et les fermer à la fin Exemple: DataEnvironment1.rsCTProduitsCritères.Open ……. DataEnvironment1.rsCTProduitsCritères.Close Remarque: Si un objet commande est lié à des contrôles alors ils sont ouverts par défaut

28 28 Cours VB – ISG 2007/2008 Consultation ou Navigation

29 29 Cours VB – ISG 2007/2008 Navigation dans les enregistrements Un RecordSet offre plusieurs méthodes qui permettent de naviguer dans les enregistrements : MoveFirst déplacement vers le premier enregistrement MoveLast déplacement vers le dernier enregistrement MoveNext déplacement vers lenregistrement suivant MovePrevious déplacement vers lenregistrement précédent

30 30 Cours VB – ISG 2007/2008 Exemple de navigation dans les enregistrements (1) Private Sub CmdPremier_Click() If DataEnvironment1.rsTableClients.RecordCount > 0 Then DataEnvironment1.rsTableClients.MoveFirst End If End Sub Private Sub CmdDernier_Click() If DataEnvironment1.rsTableClients.RecordCount > 0 Then DataEnvironment1.rsTableClients.MoveLast End If End Sub

31 31 Cours VB – ISG 2007/2008 Private Sub CmdPrécédent_Click() With DataEnvironment1.rsTableClients If.RecordCount > 0 Then.MovePrevious If.BOF = True Then.MoveLast End If End With End Sub Private Sub CmdSuivant_Click() With DataEnvironment1.rsTableClients If.RecordCount > 0 Then.MoveNext If.EOF = True Then.MoveFirst End If End With End Sub Exemple de navigation dans les enregistrements (1)

32 32 Cours VB – ISG 2007/2008 Ajout

33 33 Cours VB – ISG 2007/2008 Ajout La méthode AddNew ajoute un nouvel enregistrement au recordset (vide) Remarque: il faut que la propriété locktype de la commande soit différente de lecture seule (exemple Optimiste) Syntaxe : recordset.AddNew [FieldList, Values] Où FieldList et Values sont des paramètres facultatifs permettant d'entrer directement des valeurs dans le nouvel enregistrement. Dès l'appel de AddNew, l'enregistrement créé devient l'enregistrement en cours. Nouveau (AddNew) vide les champs puis Valider (Update) valide l'ajout ou Annuler (CancelUpdate) annule l'ajout

34 34 Cours VB – ISG 2007/2008 Exemple With DataEnvironment1.rsTableClients.AddNew.Fields(Code client") = C1".Fields("Société") = "RABILLOUD".Fields("Ville") = "Paris".Fields("Code postal") = Update End With With DataEnvironment1.rsTableClients.AddNew ![Code client] = C1" ![Société] = "RABILLOUD" ![Ville] = "Paris" ![Code postal] = Update End With ou

35 35 Cours VB – ISG 2007/2008 Ajout Si on appelle AddNew avec paramètres le Update est lancé implicitement. Exemple: DataEnvironment1.rsProduits.addnew array("Réf produit", "Nom du produit"), array(144, "Ordinateur") Permet d'ajouter directement le nouveau enregistrement dans la table produits

36 36 Cours VB – ISG 2007/2008 Modification

37 37 Cours VB – ISG 2007/2008 Modification La méthode Update sauvegarde les modifications apportées à l'enregistrement en cours. Syntaxe : recordset.Update [Fields, Values ] Où Fields et Values sont la liste des champs et des valeurs à modifier (facultatif). Remarque: on ne peut pas modifier la clé

38 38 Cours VB – ISG 2007/2008 Annulation La méthode CancelUpdate annule les modifications apportées à l'enregistrement en cours (annule aussi l'ajout si l'enregistrement en cours vient d'être créé) Syntaxe : recordset.CancelUpdate Remarque: si les MAJ sont directement faite sur un datagrid CancelUpdate ne marche pas donc si on a une feuille qui contient des champs dépendants et datagrid on peut lier les champs dépendants à un objet commande et le datagrid à un autre objet commande. Ou bien on peut utilisé linstruction Cancelbatch.

39 39 Cours VB – ISG 2007/2008 Exemple Private Sub Cmdvalider_Click() DataEnvironment1.rsCTProduits.Update SSTab1.Enabled = True End Sub Private Sub CmdAnnuler_Click() DataEnvironment1.rsCTProduits.CancelUpdate SSTab1.Enabled = True End Sub

40 40 Cours VB – ISG 2007/2008 Suppression

41 41 Cours VB – ISG 2007/2008 Suppression La méthode Delete permet de supprimer lenregistrement courant Syntaxe recordset.Delete Remarque: On ne peut pas supprimer des enregistrements liés (intégrité référentielle) il faut dans ce cas supprimer les enregistrements connexes avant (il faut parcourir ces tables en supprimant les enregistrements connexes )

42 42 Cours VB – ISG 2007/2008 Private Sub cmdsupprimer_Click() If MsgBox("Voulez vous supprimer", vbYesNo + vbQuestion, "GSC") = vbNo Then Exit Sub End If DataEnvironment1.rsTCentre.Delete If DataEnvironment1.rsTCentre.RecordCount > 0 Then DataEnvironment1.rsTCentre.MovePrevious Else DataEnvironment1.rsTCentre.AddNew DataEnvironment1.rsTCentre.CancelUpdate End If End Sub Exemple


Télécharger ppt "Cours VB 2007/2008 1 Chapitre 6 Les Bases de Données en VB Intéraction avec les données dans une base de données Microsoft Jet/Microsoft Access Et gestion."

Présentations similaires


Annonces Google