Bonjour à tous,
Ayant migré une base de données Access vers un projet ADP et sans être un expert SQLServer je voudrais savoir qu'est-ce que le mieux dans mon cas.
J'ai une table tblPersonnes qui possède plusieurs colonnes qui pointent vers d'autres tables de la base, par exemple:
tblPersonnes
IdVilleN
IdVilleT
IdAdresse
IdEvenement
IdResponsable
IdObsA
IdObsB
IdObsC
Chacun de ces Id fait référence à une autre table, prenons la tblLieus :
tblLieus
IdLieu
Ville
IdCPostal
IdDepartement
Ou la table tblAdresses :
tblAdresses
IdAdresse
IdRueType
IdRueNom
IdVille
IdCPostal
IdDepartement
Pour créer un état avec les infos de la tblPersonne, ce que je faisais avant, lorsque les tables étaient directement sur Access, c’était d’inclure dans les requêtes seulement les Ids des tables les plus compliquées, par exemple la tblVilles ou la tblAdresses. J’avais construit des modules de classe VBA qui traitaient et me donnaient toutes les infos dont j’avais besoin, ces classes avaient des Fonctions qui recevaient en paramètre l’Id et à partir de l’Id la classe, à l'aide d'un recordset allait prendre le reste de colonnes dans une requête qui rassemblait tous les champs dont j’avais besoin, puis dans la même classe je faisais tous les traitements dont j’avais besoin, savoir par exemple si le nom de la Rue était vide, si la Ville s’appelait pareil que le Département, etc. En agissant ainsi je simplifiais mon code VBA et j’évitais de faire des requêtes trop complexes pour Access.
Pour info, la plus part de mes états seront ouverts avec un enregistrement à la fois, c'est-à-dire que l’utilisateur cherchera une personne et ouvrira un état qui rassemble toutes ses infos, l’état sera donc filtré, il montrera une seule personne à chaque fois.
Etant donné que SQLServer est plus puissant, je me demande qu’est-ce que le mieux :
a. De continuer la procédure décrite ci-dessus qui évite d’avoir des vues très complexes, ou
b. De créer une seule vue dans SQLServer qui me donne toutes les colonnes dont j’aurais besoin pour mon état ?
Si je choisis l’option b,
- Existe-t-il une manière simplifié d’évaluer certaines colonnes directement sur SQLServer (par exemple savoir si la Ville s’appelle pareil que le Département, si le Code Postal est vide, etc) et agir en consequence? Une procédure stockée par exemple ? Bien que, je pourrais le faire aussi directement dans VBA, sauf que à la place de passer comme parametre l’Id et ouvrir un recordset, je passerais directement les différentes colonnes concernées pour les évaluer, sans necessiter l'ouvertur d'un recordset.
- Vous me conseillez dans cette Vue unique qui serait le source de donnés de mon état Access, d’utiliser des autres Vues à la place de tables directement, par exemple une vue pour les Adresses, autre pour les Villes, etc ?
Je vous remercie d’avance si quelqu’un peut me conseiller dans cet aspect ou me donner des références de lecture.
Partager